summaryrefslogtreecommitdiff
path: root/Lib/test/test_os.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_os.py')
-rw-r--r--Lib/test/test_os.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index b7e1c45c79..d478c64038 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -3344,7 +3344,7 @@ class PathTConverterTests(unittest.TestCase):
cleanup_fn(result)
with self.assertRaisesRegex(
- TypeError, 'should be string, bytes'):
+ TypeError, 'to return str or bytes'):
fn(int_fspath, *extra_args)
if allow_fd:
@@ -3357,6 +3357,23 @@ class PathTConverterTests(unittest.TestCase):
'os.PathLike'):
fn(fd, *extra_args)
+ def test_path_t_converter_and_custom_class(self):
+ with self.assertRaisesRegex(
+ TypeError,
+ '__fspath__\(\) to return str or bytes, not int'
+ ):
+ os.stat(FakePath(2))
+ with self.assertRaisesRegex(
+ TypeError,
+ '__fspath__\(\) to return str or bytes, not float'
+ ):
+ os.stat(FakePath(2.34))
+ with self.assertRaisesRegex(
+ TypeError,
+ '__fspath__\(\) to return str or bytes, not object'
+ ):
+ os.stat(FakePath(object()))
+
@unittest.skipUnless(hasattr(os, 'get_blocking'),
'needs os.get_blocking() and os.set_blocking()')