Browse Source
Configurable via MICROPY_MODULE_GETATTR, disabled by default. Among other things __getattr__ for modules can help to build lazy loading / code unloading at runtime.pull/4264/head
Paul m. p. P
6 years ago
committed by
Damien George
4 changed files with 36 additions and 0 deletions
@ -0,0 +1,23 @@ |
|||
# test __getattr__ on module |
|||
|
|||
# ensure that does_not_exist doesn't exist to start with |
|||
this = __import__(__name__) |
|||
try: |
|||
this.does_not_exist |
|||
assert False |
|||
except AttributeError: |
|||
pass |
|||
|
|||
# define __getattr__ |
|||
def __getattr__(attr): |
|||
if attr == 'does_not_exist': |
|||
return False |
|||
raise AttributeError |
|||
|
|||
# do feature test (will also test functionality if the feature exists) |
|||
if not hasattr(this, 'does_not_exist'): |
|||
print('SKIP') |
|||
raise SystemExit |
|||
|
|||
# check that __getattr__ works as expected |
|||
print(this.does_not_exist) |
Loading…
Reference in new issue