diff options
Diffstat (limited to 'test/base/test_utils.py')
-rw-r--r-- | test/base/test_utils.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/base/test_utils.py b/test/base/test_utils.py index 183e157e5..4392df013 100644 --- a/test/base/test_utils.py +++ b/test/base/test_utils.py @@ -3,6 +3,7 @@ import copy import datetime import inspect +import sys from sqlalchemy import exc from sqlalchemy import sql @@ -3209,3 +3210,35 @@ class TimezoneTest(fixtures.TestBase): repr(timezone(datetime.timedelta(hours=5))), "sqlalchemy.util.timezone(%r)" % (datetime.timedelta(hours=5)), ) + + +class TestModuleRegistry(fixtures.TestBase): + def test_modules_are_loaded(self): + to_restore = [] + for m in ("xml.dom", "wsgiref.simple_server"): + to_restore.append((m, sys.modules.pop(m, None))) + try: + mr = langhelpers._ModuleRegistry() + + ret = mr.preload_module( + "xml.dom", "wsgiref.simple_server", "sqlalchemy.sql.util" + ) + o = object() + is_(ret(o), o) + + is_false(hasattr(mr, "xml_dom")) + mr.import_prefix("xml") + is_true("xml.dom" in sys.modules) + is_(sys.modules["xml.dom"], mr.xml_dom) + + is_true("wsgiref.simple_server" not in sys.modules) + mr.import_prefix("wsgiref") + is_true("wsgiref.simple_server" in sys.modules) + is_(sys.modules["wsgiref.simple_server"], mr.wsgiref_simple_server) + + mr.import_prefix("sqlalchemy") + is_(sys.modules["sqlalchemy.sql.util"], mr.sql_util) + finally: + for name, mod in to_restore: + if mod is not None: + sys.modules[name] = mod |