tests/test-demandimport.py
changeset 50928 d718eddf01d9
parent 49972 1bd33932713d
equal deleted inserted replaced
50927:7a8ea1397816 50928:d718eddf01d9
   177 except ImportError as inst:
   177 except ImportError as inst:
   178     assert rsub(r"'", '', str(inst)).startswith(
   178     assert rsub(r"'", '', str(inst)).startswith(
   179         'cannot import name unknownattr'
   179         'cannot import name unknownattr'
   180     )
   180     )
   181 
   181 
   182 from mercurial import util
       
   183 
       
   184 # Unlike the import statement, __import__() function should not raise
   182 # Unlike the import statement, __import__() function should not raise
   185 # ImportError even if fromlist has an unknown item
   183 # ImportError even if fromlist has an unknown item
   186 # (see Python/import.c:import_module_level() and ensure_fromlist())
   184 # (see Python/import.c:import_module_level() and ensure_fromlist())
   187 assert 'ftplib' not in sys.modules
   185 assert 'ftplib' not in sys.modules
   188 zipfileimp = __import__('ftplib', globals(), locals(), ['unknownattr'])
   186 zipfileimp = __import__('ftplib', globals(), locals(), ['unknownattr'])
   189 assert f(zipfileimp) == "<module 'ftplib' from '?'>", f(zipfileimp)
   187 assert f(zipfileimp) == "<module 'ftplib' from '?'>", f(zipfileimp)
   190 assert not util.safehasattr(zipfileimp, 'unknownattr')
   188 assert not hasattr(zipfileimp, 'unknownattr')
   191 
   189 
   192 
   190 
   193 # test deactivation for issue6725
   191 # test deactivation for issue6725
   194 del sys.modules['telnetlib']
   192 del sys.modules['telnetlib']
   195 with demandimport.deactivated():
   193 with demandimport.deactivated():