GeezerVison is showing github.com — `test_pkgutil` should clean up `spam` module · Issue #123780 · python/cpython
test_pkgutil should clean up spam module #123780
DescriptionWhen running the tests with --randomize, as is done by the buildbots, @mhsmith came across this failure:
======================================================================
ERROR: test_find_class (test.test_pickle.CUnpicklerTests.test_find_class)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/msmith/git/python/cpython/Lib/test/pickletester.py", line 1265, in test_find_class
self.assertRaises(ModuleNotFoundError, unpickler.find_class, 'spam', 'log')
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/msmith/git/python/cpython/Lib/unittest/case.py", line 804, in assertRaises
return context.handle('assertRaises', args, kwargs)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/msmith/git/python/cpython/Lib/unittest/case.py", line 238, in handle
callable_obj(*args, **kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
AttributeError: module 'spam' has no attribute 'log'
======================================================================
ERROR: test_find_class (test.test_pickle.PyUnpicklerTests.test_find_class)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/msmith/git/python/cpython/Lib/test/pickletester.py", line 1265, in test_find_class
self.assertRaises(ModuleNotFoundError, unpickler.find_class, 'spam', 'log')
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/msmith/git/python/cpython/Lib/unittest/case.py", line 804, in assertRaises
return context.handle('assertRaises', args, kwargs)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/msmith/git/python/cpython/Lib/unittest/case.py", line 238, in handle
callable_obj(*args, **kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/Users/msmith/git/python/cpython/Lib/pickle.py", line 1620, in find_class
return getattr(sys.modules[module], name)
AttributeError: module 'spam' has no attribute 'log'
----------------------------------------------------------------------
Ran 857 tests in 2.954s
FAILED (errors=2, skipped=31)
test test_pickle failed
This can be reproduced by running only test_pkgutil and test_pickle, in that order. test_pkgutil leaves behind a spam module in sys.modules, while test_pickle assumes there is no such module.
Linked PRs
ActivityWulian233 commented on Sep 6, 2024 Reacted by Petr Viktorin and Wulian233 encukou commented on Sep 6, 2024 Sorry for creating a conflict! picnixz commented on Sep 6, 2024
Sorry for creating a conflict!
It's fine, my PR is not pressing. I'm used to deal with conflicts on my PRs xD
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|