##// END OF EJS Templates
shelve: directly handle the initial parent alignment...
shelve: directly handle the initial parent alignment Shelve is currently sub-contracting some of its work to the rebase extension. In order to make shelve more independent and flexible we would like shelve to handle the parent alignment directly. After this change, we no longer need to use rebase in shelve. Differential Revision: https://phab.mercurial-scm.org/D3693

File last commit:

r37983:1d0610fd default
r38637:c829749e default
Show More
test-demandimport.py
111 lines | 3.1 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
Martin von Zweigbergk
tests: actually check that HGDEMANDIMPORT=disable disables demandimport...
r36255 demandimport.disable()
os.environ['HGDEMANDIMPORT'] = 'disable'
# this enable call should not actually enable demandimport!
demandimport.enable()
from mercurial import node
print("node =", f(node))
# now enable it for real
del os.environ['HGDEMANDIMPORT']
demandimport.enable()
Martin von Zweigbergk
tests: avoid referring to pvec in demandimport test...
r36265 # Test access to special attributes through demandmod proxy
from mercurial import error as errorproxy
print("errorproxy =", f(errorproxy))
print("errorproxy.__doc__ = %r"
% (' '.join(errorproxy.__doc__.split()[:3]) + ' ...'))
print("errorproxy.__name__ = %r" % errorproxy.__name__)
# __name__ must be accessible via __dict__ so the relative imports can be
# resolved
print("errorproxy.__dict__['__name__'] = %r" % errorproxy.__dict__['__name__'])
print("errorproxy =", f(errorproxy))
Martin Geisler
tests: renamed Python tests to .py
r8449 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
Matt Harbison
tests: migrate demandimport.py away from deprecated `util` module symbols
r37983 from mercurial.utils import procutil
Martin Geisler
tests: renamed Python tests to .py
r8449
Matt Harbison
tests: migrate demandimport.py away from deprecated `util` module symbols
r37983 print("procutil =", f(procutil))
print("procutil.system =", f(procutil.system))
print("procutil =", f(procutil))
print("procutil.system =", f(procutil.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: 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)))
Matt Harbison
tests: migrate demandimport.py away from deprecated `util` module symbols
r37983 from mercurial import util
Yuya Nishihara
demandimport: do not raise ImportError for unknown item in fromlist...
r30647 # 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'))