This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2014年07月17日 20:09 by zach.ware, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| package_discovery.diff | zach.ware, 2014年07月17日 20:09 | Patch against 3.4 | review | |
| Messages (9) | |||
|---|---|---|---|
| msg223366 - (view) | Author: Zachary Ware (zach.ware) * (Python committer) | Date: 2014年07月17日 20:09 | |
Here's a patch against 3.4 implementing Serhiy's suggestion in msg223277 and taking it a step further, actually using test discovery in all of the test.test_* subpackages. To reduce duplication, the patch adds a 'load_package_tests' function to test.support, which is then used in each of the subpackages' load_tests function. test_json and test_tools should have no visible changes from this patch. test_asyncio and test_email do have slight differences, but only in verbosity level: pre-patch, `python -m test.test_(asyncio|email)` runs at verbosity=2 (support.run_unittest default); with patch, they run at verbosity=1 (unittest default). test_asyncio also reports one more skipped test on Windows, due to a module that raises SkipTest on import. @Brett: test_importlib sees the most changes, and I'd like to be sure that things are as you expect them to be. It looks like all of the test_suite() stuff is unused leftovers from when "test_importlib" was "importlib.test" and that test_importlib has actually been relying on unittest discovery (but bypassing load_tests and thereby not working with `python -m unittest test.test_importlib`), but I'd like confirmation on that. A nice bonus with this patch is that (for example) `python -m test.test_importlib.source` works, testing just the named test_importlib subpackage. |
|||
| msg223407 - (view) | Author: Brett Cannon (brett.cannon) * (Python committer) | Date: 2014年07月18日 12:45 | |
I can confirm everything you said is accurate, Zachary. And I very much look forward to the results of the patch. =) |
|||
| msg223517 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2014年07月20日 15:46 | |
I have no problem with the change to test_email. (I could have sworn I tried unittest.main() in __main__ when I set it up, but I must have screwed something up). I didn't go over the patch line by line, but it looks good to me. |
|||
| msg223536 - (view) | Author: Mark Lawrence (BreamoreBoy) * | Date: 2014年07月20日 20:41 | |
I'm getting lost in all the enhancement requests for tests. How does this relate to e.g. 16748 or 10572? |
|||
| msg223576 - (view) | Author: Zachary Ware (zach.ware) * (Python committer) | Date: 2014年07月21日 14:27 | |
Thank you, Brett and David. @Mark: This issue is a continuation of the #16748 effort (#16748 is a meta-issue for this kind of thing) and unrelated to #10572 (though this will add a feature to test.support that can be useful for the scattered test packages). |
|||
| msg223577 - (view) | Author: Zachary Ware (zach.ware) * (Python committer) | Date: 2014年07月21日 14:27 | |
Victor, could you give me a yay or nay on the test_asyncio change? |
|||
| msg223690 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2014年07月22日 20:23 | |
Nice. Could you please comment multiple dirname()-s in load_package_tests() as it done for basename in Lib/test/test_tools/__init__.py? |
|||
| msg223745 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2014年07月23日 17:07 | |
New changeset 4f9f7e0fe1fd by Zachary Ware in branch '3.4': Issue #22002: Make full use of test discovery in test sub-packages. http://hg.python.org/cpython/rev/4f9f7e0fe1fd New changeset 6298895a52de by Zachary Ware in branch 'default': Closes #22002: Merge with 3.4 http://hg.python.org/cpython/rev/6298895a52de |
|||
| msg223747 - (view) | Author: Zachary Ware (zach.ware) * (Python committer) | Date: 2014年07月23日 17:11 | |
Committed with a couple of changes from the posted patch: commented on the multiple dirname() calls as Serhiy suggested, removed the 'with DirsOnSysPath():' line since it turns out to be unnecessary when supplying top_level_dir to loader.discover(), and added some documentation for the new function to Doc/library/test.rst. Victor, I went ahead and did the change to test_asyncio since it looks like the tulip project test package doesn't actually have __init__.py or __main__.py, and thus should be no conflict. Please correct me if I'm wrong on that. Thanks for the reviews! |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:06 | admin | set | github: 66201 |
| 2014年07月23日 17:26:18 | zach.ware | link | issue21500 superseder |
| 2014年07月23日 17:11:04 | zach.ware | set | assignee: zach.ware messages: + msg223747 |
| 2014年07月23日 17:07:11 | python-dev | set | status: open -> closed nosy: + python-dev messages: + msg223745 resolution: fixed stage: patch review -> resolved |
| 2014年07月22日 20:23:16 | serhiy.storchaka | set | messages: + msg223690 |
| 2014年07月21日 14:27:59 | zach.ware | set | nosy:
+ vstinner messages: + msg223577 |
| 2014年07月21日 14:27:16 | zach.ware | set | messages: + msg223576 |
| 2014年07月21日 14:26:35 | zach.ware | link | issue16748 dependencies |
| 2014年07月20日 20:41:18 | BreamoreBoy | set | nosy:
+ BreamoreBoy messages: + msg223536 |
| 2014年07月20日 15:46:18 | r.david.murray | set | nosy:
+ r.david.murray messages: + msg223517 |
| 2014年07月18日 12:45:16 | brett.cannon | set | messages: + msg223407 |
| 2014年07月17日 20:09:20 | zach.ware | create | |