On Sun, Dec 30, 2012 at 10:46 AM, Benjamin Peterson <benja...@python.org> wrote: > 2012/12/29 Eli Bendersky <eli...@gmail.com>: >> Hi, >> >> This came up while investigating some test-order-dependency failures in >> issue 16076. >> >> test___all__ goes over modules that have `__all__` in them and does 'from >> <module> import *' on them. This leaves a lot of modules in sys.modules, >> which may interfere with some tests that do fancy things with sys,modules. >> In particular, the ElementTree tests have trouble with it because they >> carefully set up the imports to get the C or the Python version of etree >> (see issues 15083 and 15075). >> >> Would it make sense to save the sys.modules state and restore it in >> test___all__ so that sys.modules isn't affected by this test? > > Sounds reasonable to me.
I've tried this as an inherent property of regrtest before (to resolve some problems with test_pydoc), and it didn't work - we have too many modules with non-local side effects (IIRC, mostly related to the copy and pickle registries). Given that it checks the whole standard library, test___all__ is likely to run into the same problem. Hence test.support.import_fresh_module - it can ensure you get the module you want, regardless of the preexisting contents of sys.modules. (http://docs.python.org/dev/library/test#test.support.import_fresh_module) Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com