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() |