New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[2.7] Fix python2 -m test --list-cases test_multibytecodec_support test_robotparser #74944
Comments
On Python 2.7, listing *all* test cases with "./python -m test --list-cases" fails on the following test files:
regrtest of Python 2.7 uses the test_main() function of each test file, if the function is defined. Whereas --list-cases is more written as a raw discovery function listing all cases which inherit from unittest.TestCase. These 3 files have base test cases which are "abstract" or configured below. Options:
I would prefer to limit changes in Python 2.7 branch, so IMHO the second option is the best: modify the 2 tests. haypo@selma$ ./python -m test --list-cases test_multibytecodec_support
Traceback (most recent call last):
...
File "/home/haypo/prog/python/2.7/Lib/test/test_multibytecodec_support.py", line 268, in __init__
self.open_mapping_file().close() # test it to report the error early
File "/home/haypo/prog/python/2.7/Lib/test/test_multibytecodec_support.py", line 273, in open_mapping_file
return test_support.open_urlresource(self.mapfileurl)
AttributeError: 'TestBase_Mapping' object has no attribute 'mapfileurl'
haypo@selma$ ./python -m test --list-cases test_robotparser
Traceback (most recent call last):
...
File "/home/haypo/prog/python/2.7/Lib/test/regrtest.py", line 1511, in list_cases
suite = unittest.defaultTestLoader.loadTestsFromName(abstest)
File "/home/haypo/prog/python/2.7/Lib/unittest/loader.py", line 103, in loadTestsFromName
return self.loadTestsFromModule(obj)
File "/home/haypo/prog/python/2.7/Lib/unittest/loader.py", line 65, in loadTestsFromModule
tests.append(self.loadTestsFromTestCase(obj))
File "/home/haypo/prog/python/2.7/Lib/unittest/loader.py", line 56, in loadTestsFromTestCase
loaded_suite = self.suiteClass(map(testCaseClass, testCaseNames))
TypeError: __init__() takes exactly 6 arguments (2 given) |
I have doubts that only 2 tests need to be modified. Making tests discoverable in Python 3 was a long work made by many developers in many issues, and it still is not finished. Some of changes were not trivial and needed rewriting the architecture of the tests. Yet one option is forgot about 2.7. |
Well, this issue is not about discovering all test methods, but just to not |
For Lib/test/test_robotparser.py: with the current design of the test file, it's not easy to fix. I tried a different approach: copy the file from the match branch and adapt it for Python 2.7. See #2546 |
Hum, it still doesn't work. With my latest PR, "./python -m test --list-cases" now work on all tests of Python 2.7: |
Ok, this one is now fixed ;-) |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: