[Python-Dev] test___all__ polluting sys.modules? (original) (raw)
Richard Oudkerk shibturn at gmail.com
Sun Dec 30 13:43:10 CET 2012
- Previous message: [Python-Dev] test___all__ polluting sys.modules?
- Next message: [Python-Dev] test___all__ polluting sys.modules?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 30/12/2012 12:31am, Eli Bendersky wrote:
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?_
Deleting module objects can cause problems because the destructor replaces values in the globals dict by None. If anything defined there has "escaped" and depends on any globals then you are liable to encounter errors.
For example, setuptools restores sys.modules after running each test. This was causing errors at shutdown from an atexit function registered by multiprocessing. The atexit function was still registered, but no longer valid, because the module had been garbage collected and the globals had been replaced by None.
Personally I would like to get rid of the "purge globals" behaviour for modules deleted before shutdown has started: if someone manipulates sys.modules then they can just call gc.collect() if they want to promptly get rid of orphaned reference cycles.
-- Richard
- Previous message: [Python-Dev] test___all__ polluting sys.modules?
- Next message: [Python-Dev] test___all__ polluting sys.modules?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]