##// END OF EJS Templates
py3: conditionalize test-demandimport.py for Python 3...
py3: conditionalize test-demandimport.py for Python 3 The Python 3 lazy importer uses the LazyLoader that is part of importlib. On Python 3 and later, LazyLoader is implemented using a custom module type that defines a __getattribute__ which triggers module loading. Furthermore, there are additional differences as well. For example, it appears that Python 3 will return an existing sys.modules entry instead of constructing a new module object. This commit adds additional test coverage for lazy importing behavior to cover the differences between Python 2 and 3. This reveals that the test and some lazy import functionality is kinda busted. For example, the test assumes "contextlib" will be lazy. But in reality an import before it has already imported contextlib! There's definitely room to improve the behavior of the demand importer code, both for Python 2 and 3. But at least the test passes on Python 3 now. Differential Revision: https://phab.mercurial-scm.org/D5796
Gregory Szorc -
r41647:3e89736b default
Show More
Name Size Modified Last Commit Author
/ hgext
convert
fastannotate
fsmonitor
highlight
infinitepush
largefiles
lfs
narrow
remotefilelog
zeroconf
__init__.py Loading ...
absorb.py Loading ...
acl.py Loading ...
amend.py Loading ...
automv.py Loading ...
beautifygraph.py Loading ...
blackbox.py Loading ...
bookflow.py Loading ...
bugzilla.py Loading ...
censor.py Loading ...
children.py Loading ...
churn.py Loading ...
clonebundles.py Loading ...
closehead.py Loading ...
commitextras.py Loading ...
eol.py Loading ...
extdiff.py Loading ...
factotum.py Loading ...
fetch.py Loading ...
fix.py Loading ...
githelp.py Loading ...
gpg.py Loading ...
graphlog.py Loading ...
hgk.py Loading ...
histedit.py Loading ...
journal.py Loading ...
keyword.py Loading ...
logtoprocess.py Loading ...
mq.py Loading ...
notify.py Loading ...
pager.py Loading ...
patchbomb.py Loading ...
phabricator.py Loading ...
purge.py Loading ...
rebase.py Loading ...
record.py Loading ...
releasenotes.py Loading ...
relink.py Loading ...
remotenames.py Loading ...
schemes.py Loading ...
share.py Loading ...
shelve.py Loading ...
show.py Loading ...
sparse.py Loading ...
split.py Loading ...
sqlitestore.py Loading ...
strip.py Loading ...
transplant.py Loading ...
uncommit.py Loading ...
win32mbcs.py Loading ...
win32text.py Loading ...