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.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index d2bd9c2f23..bf40cb1e8f 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -3638,6 +3638,24 @@ class ExportsTests(unittest.TestCase):
self.assertIn('walk', os.__all__)
+class TestDirEntry(unittest.TestCase):
+ def setUp(self):
+ self.path = os.path.realpath(support.TESTFN)
+ self.addCleanup(support.rmtree, self.path)
+ os.mkdir(self.path)
+
+ def test_uninstantiable(self):
+ self.assertRaises(TypeError, os.DirEntry)
+
+ def test_unpickable(self):
+ filename = create_file(os.path.join(self.path, "file.txt"), b'python')
+ entry = [entry for entry in os.scandir(self.path)].pop()
+ self.assertIsInstance(entry, os.DirEntry)
+ self.assertEqual(entry.name, "file.txt")
+ import pickle
+ self.assertRaises(TypeError, pickle.dumps, entry, filename)
+
+
class TestScandir(unittest.TestCase):
check_no_resource_warning = support.check_no_resource_warning
@@ -3672,6 +3690,18 @@ class TestScandir(unittest.TestCase):
else:
self.assertEqual(stat1, stat2)
+ def test_uninstantiable(self):
+ scandir_iter = os.scandir(self.path)
+ self.assertRaises(TypeError, type(scandir_iter))
+ scandir_iter.close()
+
+ def test_unpickable(self):
+ filename = self.create_file("file.txt")
+ scandir_iter = os.scandir(self.path)
+ import pickle
+ self.assertRaises(TypeError, pickle.dumps, scandir_iter, filename)
+ scandir_iter.close()
+
def check_entry(self, entry, name, is_dir, is_file, is_symlink):
self.assertIsInstance(entry, os.DirEntry)
self.assertEqual(entry.name, name)