##// END OF EJS Templates
lfs: don't require the .hglfs file to be tracked to control the policy...
lfs: don't require the .hglfs file to be tracked to control the policy The .hgignore file doesn't need to be tracked, nor does the git equivalent of this file. I'm still a little concerned about the effects of forgetting to commit this file. But the fact that conversions maintain the hashes if only the normal vs external storage changes, should make this less risky.

File last commit:

r33919:eddca62d default
r35825:4425790f stable
Show More
test-demandimport.py
106 lines | 2.9 KiB | text/x-python | PythonLexer
/ tests / test-demandimport.py
Augie Fackler
tests: ensure demandimport test uses absolute_import
r33919 from __future__ import absolute_import, print_function
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948
Martin Geisler
tests: renamed Python tests to .py
r8449 from mercurial import demandimport
demandimport.enable()
Augie Fackler
demandimport: blacklist distutils.msvc9compiler (issue4475)...
r23643 import os
timeless
tests: skip demandimport if disabled...
r29868 import subprocess
import sys
# Only run if demandimport is allowed
if subprocess.call(['python', '%s/hghave' % os.environ['TESTDIR'],
'demandimport']):
sys.exit(80)
Augie Fackler
demandimport: blacklist distutils.msvc9compiler (issue4475)...
r23643 if os.name != 'nt':
try:
import distutils.msvc9compiler
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print('distutils.msvc9compiler needs to be an immediate '
'importerror on non-windows platforms')
Augie Fackler
demandimport: blacklist distutils.msvc9compiler (issue4475)...
r23643 distutils.msvc9compiler
except ImportError:
pass
Martin Geisler
tests: renamed Python tests to .py
r8449 import re
rsub = re.sub
def f(obj):
l = repr(obj)
l = rsub("0x[0-9a-fA-F]+", "0x?", l)
l = rsub("from '.*'", "from '?'", l)
Dan Villiom Podlaski Christiansen
test-demandimport.py: PyPy support...
r13083 l = rsub("'<[a-z]*>'", "'<whatever>'", l)
Martin Geisler
tests: renamed Python tests to .py
r8449 return l
import os
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print("os =", f(os))
print("os.system =", f(os.system))
print("os =", f(os))
Martin Geisler
tests: renamed Python tests to .py
r8449
from mercurial import util
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print("util =", f(util))
print("util.system =", f(util.system))
print("util =", f(util))
print("util.system =", f(util.system))
Martin Geisler
tests: renamed Python tests to .py
r8449
Bryan O'Sullivan
test-demandimport: ensure that relative imports are deferred...
r27535 from mercurial import hgweb
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print("hgweb =", f(hgweb))
print("hgweb_mod =", f(hgweb.hgweb_mod))
print("hgweb =", f(hgweb))
Bryan O'Sullivan
test-demandimport: ensure that relative imports are deferred...
r27535
Martin Geisler
tests: renamed Python tests to .py
r8449 import re as fred
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print("fred =", f(fred))
Martin Geisler
tests: renamed Python tests to .py
r8449
Yuya Nishihara
demandimport: look for 'mod' suffix as alternative name for module reference...
r32447 import re as remod
print("remod =", f(remod))
Martin Geisler
tests: renamed Python tests to .py
r8449 import sys as re
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print("re =", f(re))
Martin Geisler
tests: renamed Python tests to .py
r8449
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print("fred =", f(fred))
print("fred.sub =", f(fred.sub))
print("fred =", f(fred))
Martin Geisler
tests: renamed Python tests to .py
r8449
Yuya Nishihara
demandimport: look for 'mod' suffix as alternative name for module reference...
r32447 remod.escape # use remod
print("remod =", f(remod))
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print("re =", f(re))
print("re.stderr =", f(re.stderr))
print("re =", f(re))
Mads Kiilerich
demandimport: make it possible to disable by setting HGDEMANDIMPORT=disable...
r21025
Yuya Nishihara
demandimport: stop overriding __getattribute__()...
r32448 # Test access to special attributes through demandmod proxy
from mercurial import pvec as pvecproxy
print("pvecproxy =", f(pvecproxy))
print("pvecproxy.__doc__ = %r"
% (' '.join(pvecproxy.__doc__.split()[:3]) + ' ...'))
print("pvecproxy.__name__ = %r" % pvecproxy.__name__)
# __name__ must be accessible via __dict__ so the relative imports can be
# resolved
print("pvecproxy.__dict__['__name__'] = %r" % pvecproxy.__dict__['__name__'])
print("pvecproxy =", f(pvecproxy))
Yuya Nishihara
demandimport: error out early on missing attribute of non package (issue5373)...
r30022 import contextlib
print("contextlib =", f(contextlib))
try:
from contextlib import unknownattr
print('no demandmod should be created for attribute of non-package '
'module:\ncontextlib.unknownattr =', f(unknownattr))
except ImportError as inst:
Yuya Nishihara
demandimport: do not raise ImportError for unknown item in fromlist...
r30647 print('contextlib.unknownattr = ImportError: %s'
% rsub(r"'", '', str(inst)))
# Unlike the import statement, __import__() function should not raise
# ImportError even if fromlist has an unknown item
# (see Python/import.c:import_module_level() and ensure_fromlist())
contextlibimp = __import__('contextlib', globals(), locals(), ['unknownattr'])
print("__import__('contextlib', ..., ['unknownattr']) =", f(contextlibimp))
print("hasattr(contextlibimp, 'unknownattr') =",
util.safehasattr(contextlibimp, 'unknownattr'))
Yuya Nishihara
demandimport: error out early on missing attribute of non package (issue5373)...
r30022
Mads Kiilerich
demandimport: make it possible to disable by setting HGDEMANDIMPORT=disable...
r21025 demandimport.disable()
os.environ['HGDEMANDIMPORT'] = 'disable'
timeless
tests: clarify demandimport disabled state
r29981 # this enable call should not actually enable demandimport!
Mads Kiilerich
demandimport: make it possible to disable by setting HGDEMANDIMPORT=disable...
r21025 demandimport.enable()
from mercurial import node
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 print("node =", f(node))