]> granicus.if.org Git - python/commitdiff
Complete the absolute import patch for the test suite. All relative
authorBarry Warsaw <barry@python.org>
Tue, 30 Jul 2002 23:27:12 +0000 (23:27 +0000)
committerBarry Warsaw <barry@python.org>
Tue, 30 Jul 2002 23:27:12 +0000 (23:27 +0000)
imports of test modules now import from the test package.  Other
related oddities are also fixed (like DeprecationWarning filters that
weren't specifying the full import part, etc.).  Also did a general
code cleanup to remove all "from test.test_support import *"'s.  Other
from...import *'s weren't changed.

46 files changed:
Lib/UserString.py
Lib/test/autotest.py
Lib/test/double_const.py
Lib/test/pickletester.py
Lib/test/regrtest.py
Lib/test/string_tests.py
Lib/test/test___all__.py
Lib/test/test_al.py
Lib/test/test_atexit.py
Lib/test/test_b1.py
Lib/test/test_b2.py
Lib/test/test_binascii.py
Lib/test/test_bisect.py
Lib/test/test_bufio.py
Lib/test/test_builtin.py
Lib/test/test_cd.py
Lib/test/test_cfgparser.py
Lib/test/test_cgi.py
Lib/test/test_cl.py
Lib/test/test_class.py
Lib/test/test_coercion.py
Lib/test/test_compare.py
Lib/test/test_complex.py
Lib/test/test_contains.py
Lib/test/test_doctest2.py
Lib/test/test_exceptions.py
Lib/test/test_extcall.py
Lib/test/test_file.py
Lib/test/test_frozen.py
Lib/test/test_funcattrs.py
Lib/test/test_future.py
Lib/test/test_getargs.py
Lib/test/test_gl.py
Lib/test/test_global.py
Lib/test/test_grammar.py
Lib/test/test_gzip.py
Lib/test/test_httplib.py
Lib/test/test_math.py
Lib/test/test_opcodes.py
Lib/test/test_pickle.py
Lib/test/test_re.py
Lib/test/test_sre.py
Lib/test/test_strop.py
Lib/test/test_support.py
Lib/test/test_traceback.py
Lib/test/test_unpack.py

index ed90b8d79275a48a6907092223fdd0b92c9ba0ee..8209820aeb1db07aa5ec417fb05a96643810de8c 100755 (executable)
@@ -173,10 +173,8 @@ if __name__ == "__main__":
     # execute the regression test to stdout, if called as a script:
     import os
     called_in_dir, called_as = os.path.split(sys.argv[0])
-    called_in_dir = os.path.abspath(called_in_dir)
     called_as, py = os.path.splitext(called_as)
-    sys.path.append(os.path.join(called_in_dir, 'test'))
     if '-q' in sys.argv:
-        import test_support
+        from test import test_support
         test_support.verbose = 0
-    __import__('test_' + called_as.lower())
+    __import__('test.test_' + called_as.lower())
index 57f371bd4e106d29e095af38a9c0334d67bcce3f..41c2088727e8aad86d35368bd559fee7779ad0c8 100644 (file)
@@ -2,5 +2,5 @@
 # It can be especially handy if you're in an interactive shell, e.g.,
 # from test import autotest.
 
-import regrtest
+from test import regrtest
 regrtest.main()
index 5ea6de05b804bde9e5eae921b666989674bae703..16c33a19c9883b112250322f3cb828c5a6613f9f 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import TestFailed
+from test.test_support import TestFailed
 
 # A test for SF bug 422177:  manifest float constants varied way too much in
 # precision depending on whether Python was loading a module for the first
index 2576e8fba3ada3f12bcdfd81d2a2235ad4c3ec0f..870a8d65695b57795a89bb3c7e8dcb7b838ab0d0 100644 (file)
@@ -1,5 +1,5 @@
 import unittest
-from test_support import TestFailed, have_unicode
+from test.test_support import TestFailed, have_unicode
 
 class C:
     def __cmp__(self, other):
index 4d71e219a4299400d1d09e8ae5dfd6ce49a7ce5a..1fa5d506d46a269614b5a5280227bd65305a09dd 100755 (executable)
@@ -244,8 +244,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=0, generate=0,
             print "All",
         print count(len(good), "test"), "OK."
         if verbose:
-            print "CAUTION:  stdout isn't compared in verbose mode:  a test"
-            print "that passes in verbose mode may fail without it."
+            print "CAUTION:  stdout isn't compared in verbose mode:"
+            print "a test that passes in verbose mode may fail without it."
     if bad:
         print count(len(bad), "test"), "failed:"
         printlist(bad)
@@ -338,7 +338,13 @@ def runtest(test, generate, verbose, quiet, testdir = None):
             if cfp:
                 sys.stdout = cfp
                 print test              # Output file starts with test name
-            the_module = __import__(test, globals(), locals(), [])
+            if test.startswith('test.'):
+                abstest = test
+            else:
+                # Always import it from the test package
+                abstest = 'test.' + test
+            the_package = __import__(abstest, globals(), locals(), [])
+            the_module = getattr(the_package, test)
             # Most tests run to completion simply as a side-effect of
             # being imported.  For the benefit of tests that can't run
             # that way (like test_threaded_import), explicitly invoke
@@ -784,4 +790,18 @@ class _ExpectedSkips:
         return self.expected
 
 if __name__ == '__main__':
+    # Remove regrtest.py's own directory from the module search path.  This
+    # prevents relative imports from working, and relative imports will screw
+    # up the testing framework.  E.g. if both test.test_support and
+    # test_support are imported, they will not contain the same globals, and
+    # much of the testing framework relies on the globals in the
+    # test.test_support module.
+    mydir = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
+    i = pathlen = len(sys.path)
+    while i >= 0:
+        i -= 1
+        if os.path.abspath(os.path.normpath(sys.path[i])) == mydir:
+            del sys.path[i]
+    if len(sys.path) == pathlen:
+        print 'Could not find %r in sys.path to remove it' % mydir
     main()
index b645354a0c0807dea3c98dd6e4e938ee252196bf..47d7510c075acf60ba3f39f4e2559854d00f72ce 100644 (file)
@@ -1,7 +1,7 @@
 """Common tests shared by test_string and test_userstring"""
 
 import string
-from test_support import verify, verbose, TestFailed, have_unicode
+from test.test_support import verify, verbose, TestFailed, have_unicode
 
 transtable = '\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037 !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`xyzdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377'
 
index 01c918cdc100b15cd75fa495442585b600197112..0a988facf622508f9bc46599f40b271aca65f8c9 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import verify, verbose
+from test.test_support import verify, verbose
 import sys
 import warnings
 
index d11c7e51bae30854b650b125ac213691128092ce..66955ba1aabd4f0535792008d5540632be13293a 100755 (executable)
@@ -3,7 +3,7 @@
    Roger E. Masse
 """
 import al
-from test_support import verbose
+from test.test_support import verbose
 
 alattrs = ['__doc__', '__name__', 'getdefault', 'getminmax', 'getname', 'getparams',
            'newconfig', 'openport', 'queryparams', 'setparams']
index 9b93b6815b564ae99561462ddc09a9f8310eeb4d..c9d72a78cd552116cda08294852c36ec49aad29e 100644 (file)
@@ -1,5 +1,5 @@
 # Test the atexit module.
-from test_support import TESTFN, vereq
+from test.test_support import TESTFN, vereq
 import atexit
 from os import popen, unlink
 import sys
index cd828b161c9819551dbb3fcfecb0efd8eef7eafb..37e7cdf19692dda82450da296f23080336886a11 100644 (file)
@@ -1,6 +1,6 @@
 # Python test set -- part 4a, built-in functions a-m
 
-from test_support import *
+from test.test_support import TestFailed, fcmp, have_unicode, TESTFN, unlink
 
 print '__import__'
 __import__('sys')
index a8bc22adb8ef489575ec11526fbeea412046f6b3..b59d3ab6988e60eb60f6c91e13990687fb8655da 100644 (file)
@@ -1,6 +1,6 @@
 # Python test set -- part 4b, built-in functions n-z
 
-from test_support import *
+from test.test_support import TestFailed, fcmp, TESTFN, unlink, vereq
 
 print 'oct'
 if oct(100) != '0144': raise TestFailed, 'oct(100)'
index 2c59160128e3bfd0f7349c945b3d4346004c7eb9..f1f8b33f59d13edc5c4b20407333f42572d68a35 100755 (executable)
@@ -1,6 +1,6 @@
 """Test the binascii C module."""
 
-from test_support import verify, verbose, have_unicode
+from test.test_support import verify, verbose, have_unicode
 import binascii
 
 # Show module doc string
index 12929156bac1b72360bee8cf2a62c0b02b6aa731..a226537342f9e0dd02729597d7bc8deddf009eb7 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import TestFailed
+from test.test_support import TestFailed
 
 import bisect
 import sys
index 12359c44d02e224a641f85e87e0c002265e814ab..611cd695d96b4b3891fd0a05febc3d012fbea805 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import verify, TestFailed, TESTFN
+from test.test_support import verify, TestFailed, TESTFN
 
 # Simple test to ensure that optimizations in fileobject.c deliver
 # the expected results.  For best testing, run this under a debug-build
index 33fef8d1b7e7b3e966ad6473c63f497c326dab10..79a395cc0683e750fa85feff39e60fdc1bbd1311 100644 (file)
@@ -1,13 +1,13 @@
 # Python test set -- part 4, built-in functions
 
-from test_support import *
+from test.test_support import unload
 
 print '4. Built-in functions'
 
 print 'test_b1'
 unload('test_b1')
-import test_b1
+from test import test_b1
 
 print 'test_b2'
 unload('test_b2')
-import test_b2
+from test import test_b2
index 9a45a7d3a7d2b380e9b3ca94ed3a072a59446887..9a65a7d60042e23e837a5bbf7b0b7c0e5731f6b9 100755 (executable)
@@ -3,7 +3,7 @@
    Roger E. Masse
 """
 import cd
-from test_support import verbose
+from test.test_support import verbose
 
 cdattrs = ['BLOCKSIZE', 'CDROM', 'DATASIZE', 'ERROR', 'NODISC', 'PAUSED', 'PLAYING', 'READY',
            'STILL', '__doc__', '__name__', 'atime', 'audio', 'catalog', 'control', 'createparser', 'error',
index 6a6fecbfbb3a697a10b0da58e291c102b149809f..fae8a1788ce47762daa1eed3ca0c6af8c89bdbd7 100644 (file)
@@ -1,7 +1,7 @@
 import ConfigParser
 import StringIO
 
-from test_support import TestFailed, verify
+from test.test_support import TestFailed, verify
 
 
 def basic(src):
index b1f5758a72f0fd893fb4bddd61d40f2814d03ea5..980e3b648640183a3803da07b2d9623dcc1b8012 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import verify, verbose
+from test.test_support import verify, verbose
 import cgi
 import os
 import sys
index 26c5146863f1b39b053f1cd3f45df87401a3078d..d3efe9fbc34a0488ce65c2f28f2864dd156306b1 100755 (executable)
@@ -3,7 +3,7 @@
    Roger E. Masse
 """
 import cl
-from test_support import verbose
+from test.test_support import verbose
 
 clattrs = ['ADDED_ALGORITHM_ERROR', 'ALAW', 'ALGORITHM_ID',
 'ALGORITHM_VERSION', 'AUDIO', 'AWARE_ERROR', 'AWARE_MPEG_AUDIO',
index 5240b3adfc51ca2c88efd8a8ab362e0d5da1acce..e90a790cd4839b37523a3764ef2aef77693f7cdf 100644 (file)
@@ -1,6 +1,6 @@
 "Test the functionality of Python classes implementing operators."
 
-from test_support import TestFailed
+from test.test_support import TestFailed
 
 testmeths = [
 
index afade35287e562d1ff8ae52f4387ef6fb398d7a5..be5b744e03112fb3aba5fe5d0e042f85698a56aa 100644 (file)
@@ -113,6 +113,6 @@ def do_prefix_binops():
 warnings.filterwarnings("ignore",
                         r'complex divmod\(\), // and % are deprecated',
                         DeprecationWarning,
-                        r'test_coercion$')
+                        r'test.test_coercion$')
 do_infix_binops()
 do_prefix_binops()
index 8100aec7ab84f99bac6aa68abfe1541305af8cb4..6899926facd1d782a3899481571174a5f34f0335 100644 (file)
@@ -1,7 +1,5 @@
 import sys
 
-from test_support import *
-
 class Empty:
     def __repr__(self):
         return '<Empty>'
index ff7bb14335db4b5cdc4eba552dc6c9553b16efb6..8a02f7fce8e7ef45ea7e9235dc5cc21f0718b4c0 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import TestFailed, vereq
+from test.test_support import TestFailed, vereq
 from random import random
 
 # These tests ensure that complex math does the right thing; tests of
index 1a9a9650762084a223134715f2b03a6e61382a42..9abed1512bd3139c9f6fab9b652f113ccf10e67f 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import TestFailed, have_unicode
+from test.test_support import TestFailed, have_unicode
 
 class base_set:
 
index 31bf6e854c1b03ddd865f7ec8226ca1574317ad3..3593d4199ab34ed6a07c8db575d23a6c21499008 100644 (file)
@@ -93,7 +93,7 @@ class C(object):
     clsm = classmethod(clsm)
 
 def test_main():
-    import test_doctest2
+    from test import test_doctest2
     EXPECTED = 19
     f, t = test_support.run_doctest(test_doctest2)
     if t != EXPECTED:
index c2fbec6dee9222b07dae6a8abf61fc6dc6e83458..24ae9e307a77878c4c30d21d699a1109868dd8ab 100644 (file)
@@ -1,6 +1,6 @@
 # Python test set -- part 5, built-in exceptions
 
-from test_support import *
+from test.test_support import TestFailed, TESTFN, unlink
 from types import ClassType
 import warnings
 import sys, traceback
index 1e80387cf4acb0ae0882802fa2d3cfaafac1650f..30439a46695da09710064ebcd6473daf8db211e6 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import verify, verbose, TestFailed, sortdict
+from test.test_support import verify, verbose, TestFailed, sortdict
 from UserList import UserList
 
 def f(*a, **k):
index 261db2ccb6216236d52b076129dad2f55810620e..1eb84185f427b8be2fe687f08710756bc1dafff0 100644 (file)
@@ -2,7 +2,7 @@ import sys
 import os
 from array import array
 
-from test_support import verify, TESTFN, TestFailed
+from test.test_support import verify, TESTFN, TestFailed
 from UserList import UserList
 
 # verify writelines with instance sequence
index 3aa91ab9a069dea08be11299f0394b3bb38d4b6a..120a85f67a4051f45b819d0a2c51b256fa4c617a 100644 (file)
@@ -1,6 +1,6 @@
 # Test the frozen module defined in frozen.c.
 
-from test_support import TestFailed
+from test.test_support import TestFailed
 import sys, os
 
 try:
index 293b911def434822daf347111dba5661a218b565..3dc888c5017a7d81c75a9f3d4b3f832cad747ddb 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import verbose, TestFailed, verify
+from test.test_support import verbose, TestFailed, verify
 import types
 
 class F:
index 62bc8573fc5ffd71dd18b16fec5a871c9871eef6..12813d4b446df6cd027b671f7f49447b2dd7ad6a 100644 (file)
@@ -12,36 +12,36 @@ def check_error_location(msg):
 # The first two tests should work
 
 unload('test_future1')
-import test_future1
+from test import test_future1
 
 unload('test_future2')
-import test_future2
+from test import test_future2
 
 unload('test_future3')
-import test_future3
+from test import test_future3
 
 # The remaining tests should fail
 try:
-    import badsyntax_future3
+    from test import badsyntax_future3
 except SyntaxError, msg:
     check_error_location(str(msg))
 
 try:
-    import badsyntax_future4
+    from test import badsyntax_future4
 except SyntaxError, msg:
     check_error_location(str(msg))
 
 try:
-    import badsyntax_future5
+    from test import badsyntax_future5
 except SyntaxError, msg:
     check_error_location(str(msg))
 
 try:
-    import badsyntax_future6
+    from test import badsyntax_future6
 except SyntaxError, msg:
     check_error_location(str(msg))
 
 try:
-    import badsyntax_future7
+    from test import badsyntax_future7
 except SyntaxError, msg:
     check_error_location(str(msg))
index ff0d36cf57acbd75b66f2fff0bac7bb7b21b93aa..4ce34bc4fe545c7558e0a8531e8be2ca61ee8a3d 100644 (file)
@@ -14,7 +14,7 @@ single case that failed between 2.1 and 2.2a2.
 # XXX If the encoding succeeds using the current default encoding,
 # this test will fail because it does not test the right part of the
 # PyArg_ParseTuple() implementation.
-from test_support import have_unicode
+from test.test_support import have_unicode
 import marshal
 
 if have_unicode:
index 61eaa835b4a75bdd9a7df897db6601ff1ec86acb..c9cce7760769a466d32ef7c8604a6b0e31715062 100755 (executable)
@@ -3,7 +3,7 @@
     taken mostly from the documentation.
     Roger E. Masse
 """
-from test_support import verbose, TestSkipped
+from test.test_support import verbose, TestSkipped
 import gl, GL, time
 
 glattrs = ['RGBcolor', 'RGBcursor', 'RGBmode', 'RGBrange', 'RGBwritemask',
index fb10533ae46b50bbcbe40505593c3edfcd4bb099..4cc953cd3f44b6e0102daed014db49f05749580c 100644 (file)
@@ -1,6 +1,6 @@
 """Verify that warnings are issued for global statements following use."""
 
-from test_support import check_syntax
+from test.test_support import check_syntax
 
 import warnings
 
index bb843fb6246136492dbcfa2394d6f040bc16b1f5..c77e19e0f65d42768991dd95de960d12b936353d 100644 (file)
@@ -1,7 +1,7 @@
 # Python test set -- part 1, grammar.
 # This just tests whether the parser accepts them all.
 
-from test_support import *
+from test.test_support import TestFailed, verify, check_syntax
 import sys
 
 print '1. Parser'
index d42dee66678943b7236903f9e2161704904123e9..9156d9ed621d2135c7c05089cf14af6d3bf623ae 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import verify
+from test.test_support import verify
 import sys, os
 import gzip, tempfile
 
index f70abec7ea5400ea552689238d7b2dfeb9451ebd..4d8dbc8997645c4fe3c62d32a8f088ce81cff228 100644 (file)
@@ -1,4 +1,4 @@
-from test_support import verify,verbose
+from test.test_support import verify,verbose
 import httplib
 import StringIO
 
index 51013815ffc3db339d860f8b75b22b797b473463..2d9b55b2f506a2b1b88f9b56451527b9994b367b 100644 (file)
@@ -1,7 +1,7 @@
 # Python test set -- math module
 # XXXX Should not do tests around zero only
 
-from test.test_support import *
+from test.test_support import TestFailed, verbose
 
 seps='1e-05'
 eps = eval(seps)
index 515df6c1d4fc0f9a95165c8f86db2f03641bee0e..c1929637ac093a6578af0b6a281697dffec33efe 100644 (file)
@@ -1,6 +1,6 @@
 # Python test set -- part 2, opcodes
 
-from test.test_support import *
+from test.test_support import TestFailed
 
 
 print '2. Opcodes'
index 935a7632620d32e1b491cd130aac7149fdf1d963..87c73c24785085adc3681cbfe167b5f2037f29ae 100644 (file)
@@ -1,7 +1,7 @@
 import pickle
 import unittest
 from cStringIO import StringIO
-from pickletester import AbstractPickleTests, AbstractPickleModuleTests
+from test.pickletester import AbstractPickleTests, AbstractPickleModuleTests
 from test import test_support
 
 class PickleTests(AbstractPickleTests, AbstractPickleModuleTests):
index 5475416924ef8cad47c38a9e73aff2caf4211701..a20c82f6823c29eb5f85033671691b92e76c88ff 100644 (file)
@@ -267,7 +267,7 @@ try:
 except RuntimeError, v:
     print v
 
-from re_tests import *
+from test.re_tests import *
 
 if verbose:
     print 'Running re_tests test suite'
index 4f2aae84b76ab8a2c73fe1539ba43cd1ca78c84c..284212c7c7a1a924b88f15b03829fecb7f8a773b 100644 (file)
@@ -298,7 +298,7 @@ test("sre.match('(x)*', 50000*'x').span()", (0, 50000), RuntimeError)
 test("sre.match(r'(x)*y', 50000*'x'+'y').span()", (0, 50001), RuntimeError)
 test("sre.match(r'(x)*?y', 50000*'x'+'y').span()", (0, 50001), RuntimeError)
 
-from re_tests import *
+from test.re_tests import *
 
 if verbose:
     print 'Running re_tests test suite'
index 4f5ba000d7b59763b1f75d6ac94439c28020f984..2ac7986690a6452b2897afa431f4a69d7fa16e47 100644 (file)
@@ -1,7 +1,7 @@
 import warnings
 warnings.filterwarnings("ignore", "strop functions are obsolete;",
                         DeprecationWarning,
-                        r'test_strop|unittest')
+                        r'test.test_strop|unittest')
 import strop
 import unittest
 from test import test_support
index 4a456179b7e2ad7cce22616ea6e27aa290d58baa..948c64561f890a907c0026b645ecfc2760ef77ab 100644 (file)
@@ -1,5 +1,8 @@
 """Supporting definitions for the Python regression test."""
 
+if __name__ != 'test.test_support':
+    raise ImportError, 'test_support must be imported from the test package'
+
 import sys
 
 class Error(Exception):
index 44221188f534fa1ce199910005359bf153f22665..a0b31505a36739131b8a997e299a4bb79f247b58 100644 (file)
@@ -22,7 +22,7 @@ class TracebackCases(unittest.TestCase):
 
     def syntax_error_without_caret(self):
         # XXX why doesn't compile raise the same traceback?
-        import badsyntax_nocaret
+        import test.badsyntax_nocaret
 
     def test_caret(self):
         err = self.get_exception_format(self.syntax_error_with_caret,
index fb225645b8ec4f8bf4f7acacf16488a29057d469..a8fd09c633e2893b322d7c022f4ca379a07a99fc 100644 (file)
@@ -1,4 +1,4 @@
-from test.test_support import *
+from test.test_support import TestFailed, verbose
 
 t = (1, 2, 3)
 l = [4, 5, 6]