[Python-checkins] bpo-34195: Fix case-sensitive comparison in test_nt_helpers (GH-8448)
Tim Golden
webhook-mailer at python.org
Wed Jul 25 09:36:58 EDT 2018
https://github.com/python/cpython/commit/ff64add8d4be2e37c552ba702f629b0b6639cd33
commit: ff64add8d4be2e37c552ba702f629b0b6639cd33
branch: master
author: Tim Golden <mail at timgolden.me.uk>
committer: GitHub <noreply at github.com>
date: 2018年07月25日T14:36:54+01:00
summary:
bpo-34195: Fix case-sensitive comparison in test_nt_helpers (GH-8448)
* Fix case-sensitive comparison
test_nt_helpers assumed that two versions of a Windows path could be compared case-sensitively. This is not the case, and the difference can be triggered (apparently) by running the test on a path somewhere below a Junction.
files:
M Lib/test/test_ntpath.py
diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py
index 2d48be844242..1e85ad5a75a7 100644
--- a/Lib/test/test_ntpath.py
+++ b/Lib/test/test_ntpath.py
@@ -422,16 +422,22 @@ def test_ismount(self):
self.assertTrue(ntpath.ismount(b"\\\\localhost\\c$"))
self.assertTrue(ntpath.ismount(b"\\\\localhost\\c$\\"))
+ def assertEqualCI(self, s1, s2):
+ """Assert that two strings are equal ignoring case differences."""
+ self.assertEqual(s1.lower(), s2.lower())
+
@unittest.skipUnless(nt, "OS helpers require 'nt' module")
def test_nt_helpers(self):
# Trivial validation that the helpers do not break, and support both
# unicode and bytes (UTF-8) paths
- drive, path = ntpath.splitdrive(sys.executable)
- drive = drive.rstrip(ntpath.sep) + ntpath.sep
- self.assertEqual(drive, nt._getvolumepathname(sys.executable))
- self.assertEqual(drive.encode(),
- nt._getvolumepathname(sys.executable.encode()))
+ executable = nt._getfinalpathname(sys.executable)
+
+ for path in executable, os.fsencode(executable):
+ volume_path = nt._getvolumepathname(path)
+ path_drive = ntpath.splitdrive(path)[0]
+ volume_path_drive = ntpath.splitdrive(volume_path)[0]
+ self.assertEqualCI(path_drive, volume_path_drive)
cap, free = nt._getdiskusage(sys.exec_prefix)
self.assertGreater(cap, 0)
More information about the Python-checkins
mailing list