summaryrefslogtreecommitdiffstats
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.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index cb78e8c..94db8bb 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -4158,6 +4158,8 @@ class TestScandir(unittest.TestCase):
self.assertEqual(entry.is_file(follow_symlinks=False),
stat.S_ISREG(entry_lstat.st_mode))
+ self.assertEqual(entry.is_junction(), os.path.isjunction(entry.path))
+
self.assert_stat_equal(entry.stat(),
entry_stat,
os.name == 'nt' and not is_symlink)
@@ -4206,6 +4208,21 @@ class TestScandir(unittest.TestCase):
entry = entries['symlink_file.txt']
self.check_entry(entry, 'symlink_file.txt', False, True, True)
+ @unittest.skipIf(sys.platform != 'win32', "Can only test junctions with creation on win32.")
+ def test_attributes_junctions(self):
+ dirname = os.path.join(self.path, "tgtdir")
+ os.mkdir(dirname)
+
+ import _winapi
+ try:
+ _winapi.CreateJunction(dirname, os.path.join(self.path, "srcjunc"))
+ except OSError:
+ raise unittest.SkipTest('creating the test junction failed')
+
+ entries = self.get_entries(['srcjunc', 'tgtdir'])
+ self.assertEqual(entries['srcjunc'].is_junction(), True)
+ self.assertEqual(entries['tgtdir'].is_junction(), False)
+
def get_entry(self, name):
path = self.bytes_path if isinstance(name, bytes) else self.path
entries = list(os.scandir(path))