summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_ntpath.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_ntpath.py')
-rw-r--r--Lib/test/test_ntpath.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py
index bce38a5..b329006 100644
--- a/Lib/test/test_ntpath.py
+++ b/Lib/test/test_ntpath.py
@@ -1,9 +1,10 @@
+import inspect
import ntpath
import os
import sys
import unittest
import warnings
-from test.support import os_helper
+from test.support import cpython_only, os_helper
from test.support import TestFailed, is_emscripten
from test.support.os_helper import FakePath
from test import test_genericpath
@@ -938,6 +939,35 @@ class TestNtpath(NtpathTestCase):
self.assertFalse(ntpath.isjunction('tmpdir'))
self.assertPathEqual(ntpath.realpath('testjunc'), ntpath.realpath('tmpdir'))
+ @unittest.skipIf(sys.platform != 'win32', "drive letters are a windows concept")
+ def test_isfile_driveletter(self):
+ drive = os.environ.get('SystemDrive')
+ if drive is None or len(drive) != 2 or drive[1] != ':':
+ raise unittest.SkipTest('SystemDrive is not defined or malformed')
+ self.assertFalse(os.path.isfile('\\\\.\\' + drive))
+
+ @unittest.skipIf(sys.platform != 'win32', "windows only")
+ def test_con_device(self):
+ self.assertFalse(os.path.isfile(r"\\.\CON"))
+ self.assertFalse(os.path.isdir(r"\\.\CON"))
+ self.assertFalse(os.path.islink(r"\\.\CON"))
+ self.assertTrue(os.path.exists(r"\\.\CON"))
+
+ @unittest.skipIf(sys.platform != 'win32', "Fast paths are only for win32")
+ @cpython_only
+ def test_fast_paths_in_use(self):
+ # There are fast paths of these functions implemented in posixmodule.c.
+ # Confirm that they are being used, and not the Python fallbacks in
+ # genericpath.py.
+ self.assertTrue(os.path.isdir is nt._path_isdir)
+ self.assertFalse(inspect.isfunction(os.path.isdir))
+ self.assertTrue(os.path.isfile is nt._path_isfile)
+ self.assertFalse(inspect.isfunction(os.path.isfile))
+ self.assertTrue(os.path.islink is nt._path_islink)
+ self.assertFalse(inspect.isfunction(os.path.islink))
+ self.assertTrue(os.path.exists is nt._path_exists)
+ self.assertFalse(inspect.isfunction(os.path.exists))
+
class NtCommonTest(test_genericpath.CommonTest, unittest.TestCase):
pathmodule = ntpath