# HG changeset patch # User Gregory Szorc # Date 2019-02-01 21:20:13 # Node ID 30248d6bc057009c5c55116fdd90d3ece9638aef # Parent 3e89736b98ce6bb2b9e29215a5e4c84350862eb6 tests: use unimported modules in test-demandimport.py contextlib isn't a good module to test because it is likely already imported by code above. Let's use modules that shouldn't have been imported. And let's verify that with asserts. Differential Revision: https://phab.mercurial-scm.org/D5797 diff --git a/tests/test-demandimport.py b/tests/test-demandimport.py --- a/tests/test-demandimport.py +++ b/tests/test-demandimport.py @@ -194,20 +194,21 @@ else: ) assert f(re) == "", f(re) -import contextlib +assert 'telnetlib' not in sys.modules +import telnetlib if ispy3: - assert not isinstance(contextlib, _LazyModule) - assert f(contextlib) == "" + assert not isinstance(telnetlib, _LazyModule) + assert f(telnetlib) == "" else: - assert f(contextlib) == "", f(contextlib) + assert f(telnetlib) == "", f(telnetlib) try: - from contextlib import unknownattr + from telnetlib import unknownattr assert False, ( 'no demandmod should be created for attribute of non-package ' - 'module:\ncontextlib.unknownattr = %s' % f(unknownattr) + 'module:\ntelnetlib.unknownattr = %s' % f(unknownattr) ) except ImportError as inst: assert rsub(r"'", '', str(inst)).startswith( @@ -219,6 +220,7 @@ from mercurial import util # Unlike the import statement, __import__() function should not raise # ImportError even if fromlist has an unknown item # (see Python/import.c:import_module_level() and ensure_fromlist()) -contextlibimp = __import__('contextlib', globals(), locals(), ['unknownattr']) -assert f(contextlibimp) == "", f(contextlibimp) -assert not util.safehasattr(contextlibimp, 'unknownattr') +assert 'zipfile' not in sys.modules +zipfileimp = __import__('zipfile', globals(), locals(), ['unknownattr']) +assert f(zipfileimp) == "", f(zipfileimp) +assert not util.safehasattr(zipfileimp, 'unknownattr')