From 13a0db5ddbb53c504574743207524b037945552c Mon Sep 17 00:00:00 2001 From: Brian Curtin Date: Mon, 6 Sep 2010 19:46:17 +0000 Subject: [PATCH] Fix some errors that #7566 introduced on non-Windows platforms due to an ImportError. Rearranged the import, faked out the implementation when the import fails, and reorganized a test that depends on Win32 behavior. --- Lib/ntpath.py | 9 +++++++-- Lib/test/test_ntpath.py | 12 +++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Lib/ntpath.py b/Lib/ntpath.py index eae3cf3098a..4a121f52223 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -10,7 +10,6 @@ import sys import stat import genericpath from genericpath import * -from nt import _getfileinformation __all__ = ["normcase","isabs","join","splitdrive","split","splitext", "basename","dirname","commonprefix","getsize","getmtime", @@ -656,4 +655,10 @@ def samefile(f1, f2): def sameopenfile(f1, f2): """Test whether two file objects reference the same file""" - return _getfileinformation(f1) == _getfileinformation(f2) + try: + from nt import _getfileinformation + return _getfileinformation(f1) == _getfileinformation(f2) + except ImportError: + # On other operating systems, return True if the file descriptors + # are the same. + return f1 == f2 diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py index 9f39abaec33..5609aee5dbf 100644 --- a/Lib/test/test_ntpath.py +++ b/Lib/test/test_ntpath.py @@ -1,5 +1,6 @@ import ntpath import os +import sys from test.support import TestFailed from test import support, test_genericpath from tempfile import TemporaryFile @@ -244,11 +245,12 @@ class TestNtpath(unittest.TestCase): 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) + # Make sure invalid values don't cause issues on win32 + if sys.platform == "win32": + with self.assertRaises(ValueError): + # Invalid file descriptors shouldn't display assert + # dialogs (#4804) + ntpath.sameopenfile(-1, -1) class NtCommonTest(test_genericpath.CommonTest):