tests/test-demandimport.py
branchstable
changeset 30647 1914db1b7d9e
parent 30022 26a4e46af2bc
child 32447 252d2260c74e
equal deleted inserted replaced
30558:7817df5585db 30647:1914db1b7d9e
    68 try:
    68 try:
    69     from contextlib import unknownattr
    69     from contextlib import unknownattr
    70     print('no demandmod should be created for attribute of non-package '
    70     print('no demandmod should be created for attribute of non-package '
    71           'module:\ncontextlib.unknownattr =', f(unknownattr))
    71           'module:\ncontextlib.unknownattr =', f(unknownattr))
    72 except ImportError as inst:
    72 except ImportError as inst:
    73     print('contextlib.unknownattr = ImportError: %s' % inst)
    73     print('contextlib.unknownattr = ImportError: %s'
       
    74           % rsub(r"'", '', str(inst)))
       
    75 
       
    76 # Unlike the import statement, __import__() function should not raise
       
    77 # ImportError even if fromlist has an unknown item
       
    78 # (see Python/import.c:import_module_level() and ensure_fromlist())
       
    79 contextlibimp = __import__('contextlib', globals(), locals(), ['unknownattr'])
       
    80 print("__import__('contextlib', ..., ['unknownattr']) =", f(contextlibimp))
       
    81 print("hasattr(contextlibimp, 'unknownattr') =",
       
    82       util.safehasattr(contextlibimp, 'unknownattr'))
    74 
    83 
    75 demandimport.disable()
    84 demandimport.disable()
    76 os.environ['HGDEMANDIMPORT'] = 'disable'
    85 os.environ['HGDEMANDIMPORT'] = 'disable'
    77 # this enable call should not actually enable demandimport!
    86 # this enable call should not actually enable demandimport!
    78 demandimport.enable()
    87 demandimport.enable()