]> granicus.if.org Git - python/commitdiff
Partially revert r78719 - it removed a check that is still needed in some cases ...
authorNick Coghlan <ncoghlan@gmail.com>
Fri, 3 Dec 2010 07:44:33 +0000 (07:44 +0000)
committerNick Coghlan <ncoghlan@gmail.com>
Fri, 3 Dec 2010 07:44:33 +0000 (07:44 +0000)
Lib/test/regrtest.py
Misc/NEWS

index 9eecd1dc1af6bdcc50648cb45623dfc19216d9e7..9d82b71c55f0228814c06241364192fa394e8d31 100755 (executable)
@@ -1468,7 +1468,20 @@ class _ExpectedSkips:
         assert self.isvalid()
         return self.expected
 
+
 if __name__ == '__main__':
+    # Remove regrtest.py's own directory from the module search path. Despite
+    # the elimination of implicit relative imports, this is still needed to
+    # ensure that submodules of the test package do not inappropriately appear
+    # as top-level modules even when people (or buildbots!) invoke regrtest.py
+    # directly instead of using the -m switch
+    mydir = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
+    i = len(sys.path)
+    while i >= 0:
+        i -= 1
+        if os.path.abspath(os.path.normpath(sys.path[i])) == mydir:
+            del sys.path[i]
+
     # findtestdir() gets the dirname out of __file__, so we have to make it
     # absolute before changing the working directory.
     # For example __file__ may be relative when running trace or profile.
index 4d40b7081293629a63c959cc6b5a1cae3db86560..abd37b952cc4054b814f078c5cae9b32ebd29f49 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -191,6 +191,9 @@ C-API
 Tests
 -----
 
+- regrtest.py once again ensures the test directory is removed from
+  sys.path when it is invoked directly as the __main__ module
+
 - Issue #9424: Deprecate the `unittest.TestCase` methods `assertEquals`,
   `assertNotEquals`, `assertAlmostEquals`, `assertNotAlmostEquals` and `assert_`
   and replace them with the correct methods in the Python test suite.