On Sun, Dec 30, 2012 at 5:54 AM, Stefan Krah <ste...@bytereef.org> wrote:
> Eli Bendersky <eli...@gmail.com> wrote: > > Yes, this is the solution currently used in test_xml_etree. However, once > > pickling tests are added things stop working. Pickle uses __import__ to > import > > the module a class belongs to, bypassing all such trickery. So if > test___all__ > > got _elementtree into sys.modules, pickle's __import__ finds it even if > all the > > tests in test_xml_etree manage to ignore it for the Python version > because they > > use import_fresh_module. > > I ran into the same problem for test_decimal. The only thing that appears > to work is to set sys.modules['decimal'] explicitly before calling > dumps()/loads(). See: > > PythonAPItests.test_pickle() > ContextAPItests.test_pickle() > > > test_decimal ruthlessly switches sys.modules['decimal'] many times. At the > end of all tests there is a sanity check that asserts that the number of > changes were in fact balanced. Thank you, I'll try this. I'm also experimenting with other approaches. By the way, from clean default checkout: $ ./python -mtest test___all__ test_int [1/2] test___all__ [2/2] test_int test test_int failed -- Traceback (most recent call last): File "/home/eliben/python-src/default/Lib/test/test_int.py", line 236, in test_keyword_args self.assertRaises(TypeError, int, base=10) AssertionError: TypeError not raised by int 1 test OK. 1 test failed: test_int Should this really fail? [I haven't investigated the root cause yet] Eli
_______________________________________________ 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