mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
Implement #7566 - os.path.sameopenfile for Windows.
This uses the GetFileInformationByHandle function to return a tuple of values to identify a file, then ntpath.sameopenfile compares file tuples, which is exposed as os.path.sameopenfile.
This commit is contained in:
parent
5c997b8d90
commit
6285774f06
5 changed files with 52 additions and 2 deletions
|
|
@ -2,6 +2,7 @@ import ntpath
|
|||
import os
|
||||
from test.support import TestFailed
|
||||
from test import support, test_genericpath
|
||||
from tempfile import TemporaryFile
|
||||
import unittest
|
||||
|
||||
|
||||
|
|
@ -237,6 +238,18 @@ class TestNtpath(unittest.TestCase):
|
|||
tester('ntpath.relpath("/a", "/a")', '.')
|
||||
tester('ntpath.relpath("/a/b", "/a/b")', '.')
|
||||
|
||||
def test_sameopenfile(self):
|
||||
with TemporaryFile() as tf1, TemporaryFile() as tf2:
|
||||
# Make sure the same file is really the same
|
||||
self.assertTrue(ntpath.sameopenfile(tf1.fileno(), tf1.fileno()))
|
||||
# Make sure different files are really different
|
||||
self.assertFalse(ntpath.sameopenfile(tf1.fileno(), tf2.fileno()))
|
||||
# Make sure invalid values don't cause issues
|
||||
with self.assertRaises(ValueError):
|
||||
# Invalid file descriptors shouldn't display assert
|
||||
# dialogs (#4804)
|
||||
ntpath.sameopenfile(-1, -1)
|
||||
|
||||
|
||||
class NtCommonTest(test_genericpath.CommonTest):
|
||||
pathmodule = ntpath
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue