[Python-Dev] test___all__ polluting sys.modules?
eliben at gmail.com
Sun Dec 30 15:17:01 CET 2012
On Sun, Dec 30, 2012 at 6:06 AM, Eli Bendersky <eliben at gmail.com> wrote:
> On Sun, Dec 30, 2012 at 5:54 AM, Stefan Krah <stefan at bytereef.org> wrote:
>> Eli Bendersky <eliben at gmail.com> wrote:
>> > Yes, this is the solution currently used in test_xml_etree. However,
>> > pickling tests are added things stop working. Pickle uses __import__ to
>> > the module a class belongs to, bypassing all such trickery. So if
>> > 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:
>> 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:
> Should this really fail? [I haven't investigated the root cause yet]
This is a false alarm, sorry. Please ignore this report (I had some stale
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev