[Python-Dev] Whole bunch of test failures on OSX (original) (raw)
Tim Peters tim.peters at gmail.com
Mon Apr 3 04:14:12 CEST 2006
- Previous message: [Python-Dev] Whole bunch of test failures on OSX
- Next message: [Python-Dev] TRUNK FREEZE. 2.5a1, 00:00 UTC, Wednesday 5th of April.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Neal Norwitz, on -R testing]
... For the latest results, see: http://docs.python.org/dev/results/make-test-refleak.out
Several tests fail consistently with -R. These are the most recent from the link above: testdecimal testdifflib testlogging testoptparse testwarnings. It would be great if someone would figure out why these tests fail when running under -R and fix them.
Like anyone wants to spend their life guessing what reload() actually does <0.6 wink>.
C:\Code\python\PCbuild>python Python 2.5a0 (trunk:43548M, Apr 1 2006, 21:44:15) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
from test import testwarnings testwarnings.testmain() # first time it's fine test_filtering (test.test_warnings.TestModule) ... ok test_warn_default_category (test.test_warnings.TestModule) ... ok test_warn_specific_category (test.test_warnings.TestModule) ... ok
Ran 3 tests in 0.031s
OK
reload(testwarnings) # then the dreaded reload(), and it fails <module 'test.test_warnings' from 'C:\Code\python\lib\test\test_warnings.pyc'> testwarnings.testmain() test_filtering (test.test_warnings.TestModule) ... ERROR test_warn_default_category (test.test_warnings.TestModule) ... ERROR test_warn_specific_category (test.test_warnings.TestModule) ... ERROR
====================================================================== ERROR: test_filtering (test.test_warnings.TestModule)
Traceback (most recent call last): File "C:\Code\python\lib\test\test_warnings.py", line 68, in test_filtering self.assertEqual(msg.message, text) AttributeError: WarningMessage instance has no attribute 'message'
====================================================================== ERROR: test_warn_default_category (test.test_warnings.TestModule)
Traceback (most recent call last): File "C:\Code\python\lib\test\test_warnings.py", line 42, in test_warn_default_category self.assertEqual(msg.message, text) AttributeError: WarningMessage instance has no attribute 'message'
====================================================================== ERROR: test_warn_specific_category (test.test_warnings.TestModule)
Traceback (most recent call last): File "C:\Code\python\lib\test\test_warnings.py", line 57, in test_warn_specific_category self.assertEqual(msg.message, text) AttributeError: WarningMessage instance has no attribute 'message'
Ran 3 tests in 0.000s
FAILED (errors=3) Traceback (most recent call last): File "", line 1, in File "C:\Code\python\lib\test\test_warnings.py", line 85, in test_main test_support.run_unittest(TestModule) File "C:\Code\python\lib\test\test_support.py", line 300, in run_unittest run_suite(suite, testclass) File "C:\Code\python\lib\test\test_support.py", line 284, in run_suite raise TestFailed(msg) test.test_support.TestFailed: errors occurred in test.test_warnings.TestModule
Figuring out why that happens is pretty much a nightmare. "Fixing it" requires changes to both regrtest and test_warnings:
""" Index: Lib/test/regrtest.py
--- Lib/test/regrtest.py (revision 43548) +++ Lib/test/regrtest.py (working copy) @@ -536,12 +536,10 @@ sys.path_importer_cache.update(pic) dircache.reset() linecache.clearcache() - if indirect_test: - def run_the_test(): - indirect_test() - else: - def run_the_test(): - reload(the_module) + def run_the_test(): + reload(the_module) + if indirect_test: + getattr(the_module, "test_main")() deltas = [] repcount = huntrleaks[0] + huntrleaks[1] print >> sys.stderr, "beginning", repcount, "repetitions" Index: Lib/test/test_warnings.py
--- Lib/test/test_warnings.py (revision 43548) +++ Lib/test/test_warnings.py (working copy) @@ -84,5 +84,9 @@ def test_main(verbose=None): test_support.run_unittest(TestModule)
+# Obscure hack so that this test passes after reloads (regrtest -R). +if 'warningregistry' in globals():
- del globals()['warningregistry']
- if name == "main": test_main(verbose=True)
"""
The change to regrtest may fix other -R cases (for example, it appears to repair test_decimal), but may introduce new failures too. If you try it and find it's a net win ;-), feel free to check it in.
- Previous message: [Python-Dev] Whole bunch of test failures on OSX
- Next message: [Python-Dev] TRUNK FREEZE. 2.5a1, 00:00 UTC, Wednesday 5th of April.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]