##// END OF EJS Templates
py3: implement __bytes__ for committablectx...
py3: implement __bytes__ for committablectx Before this method, calling bytes on workingctx or memctx calls basectx.__bytes__ since the magic method was not defined for this class. When it calls the method from basectx class, it returns TypeError because None is passed into it. After this commit `hg update -C` works on Python 3 if eol is not enabled.

File last commit:

r32448:91a2ec8e default
r32643:1df98fc9 default
Show More
test-demandimport.py
106 lines | 2.9 KiB | text/x-python | PythonLexer
/ tests / test-demandimport.py
Pulkit Goyal
py3: make test-demandimport use print_function...
r28948 from __future__ import print_function
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))