# test `from package import *` conventions, including __all__ support # # This test requires MICROPY_CONFIG_ROM_LEVEL_AT_LEAST_BASIC_FEATURES try: next(iter([]), 42) except TypeError: # 2-argument version of next() not supported # we are probably not at MICROPY_CONFIG_ROM_LEVEL_BASIC_FEATURES print('SKIP') raise SystemExit # 1. test default visibility from pkgstar_default import * print('visibleFun' in globals()) print('VisibleClass' in globals()) print('_hiddenFun' in globals()) print('_HiddenClass' in globals()) print(visibleFun()) # 2. test explicit visibility as defined by __all__ (as an array) from pkgstar_all_array import * print('publicFun' in globals()) print('PublicClass' in globals()) print('unlistedFun' in globals()) print('UnlistedClass' in globals()) print('_privateFun' in globals()) print('_PrivateClass' in globals()) print(publicFun()) # test dynamic import as used in asyncio print('dynamicFun' in globals()) print(dynamicFun()) # 3. test explicit visibility as defined by __all__ (as an tuple) from pkgstar_all_tuple import * print('publicFun2' in globals()) print('PublicClass2' in globals()) print('unlistedFun2' in globals()) print('UnlistedClass2' in globals()) print(publicFun2()) # 4. test reporting of missing entries in __all__ try: from pkgstar_all_miss import * print("missed detection of incorrect __all__ definition") except AttributeError as er: print("AttributeError triggered for bad __all__ definition") # 5. test reporting of invalid __all__ definition try: from pkgstar_all_inval import * print("missed detection of incorrect __all__ definition") except TypeError as er: print("TypeError triggered for bad __all__ definition")