##// END OF EJS Templates
tests: use pattern matching to mask `ECONNREFUSED` messages...
tests: use pattern matching to mask `ECONNREFUSED` messages The second and third one of these in `test-http-proxy.t` was failing on Windows. The others were found by grep and by failed tests when output was matched and an attempt was made to emit the mask pattern. The first clonebundles failure on Windows emitted: error fetching bundle: [WinError 10061] $ECONNREFUSED$ We should probably stringify that better to get rid of the "[WinError 10061]" part.

File last commit:

r52596:ca7bde5d default
r52835:73a43fe3 default
Show More
test-extensions-wrapfunction.py
78 lines | 2.0 KiB | text/x-python | PythonLexer
/ tests / test-extensions-wrapfunction.py
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 from mercurial import extensions
Augie Fackler
formatting: blacken the codebase...
r43346
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 def genwrapper(x):
def f(orig, *args, **kwds):
return [x] + orig(*args, **kwds)
Augie Fackler
formatting: blacken the codebase...
r43346
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 f.x = x
return f
Augie Fackler
formatting: blacken the codebase...
r43346
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 def getid(wrapper):
return getattr(wrapper, 'x', '-')
Augie Fackler
formatting: blacken the codebase...
r43346
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 wrappers = [genwrapper(i) for i in range(5)]
Augie Fackler
formatting: blacken the codebase...
r43346
Gregory Szorc
py3: use class X: instead of class X(object):...
r49801 class dummyclass:
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 def getstack(self):
return ['orig']
Augie Fackler
formatting: blacken the codebase...
r43346
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 dummy = dummyclass()
Augie Fackler
formatting: blacken the codebase...
r43346
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 def batchwrap(wrappers):
for w in wrappers:
extensions.wrapfunction(dummy, 'getstack', w)
print('wrap %d: %s' % (getid(w), dummy.getstack()))
Augie Fackler
formatting: blacken the codebase...
r43346
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 def batchunwrap(wrappers):
for w in wrappers:
result = None
try:
result = extensions.unwrapfunction(dummy, 'getstack', w)
msg = str(dummy.getstack())
except (ValueError, IndexError) as e:
msg = e.__class__.__name__
print('unwrap %s: %s: %s' % (getid(w), getid(result), msg))
Augie Fackler
formatting: blacken the codebase...
r43346
Jun Wu
extensions: add unwrapfunction to undo wrapfunction...
r29765 batchwrap(wrappers + [wrappers[0]])
Augie Fackler
formatting: blacken the codebase...
r43346 batchunwrap(
[
(wrappers[i] if i is not None and i >= 0 else None)
for i in [3, None, 0, 4, 0, 2, 1, None]
]
)
Martin von Zweigbergk
extensions: add wrappedfunction() context manager...
r34016
wrap0 = extensions.wrappedfunction(dummy, 'getstack', wrappers[0])
wrap1 = extensions.wrappedfunction(dummy, 'getstack', wrappers[1])
# Use them in a different order from how they were created to check that
# the wrapping happens in __enter__, not in __init__
print('context manager', dummy.getstack())
with wrap1:
print('context manager', dummy.getstack())
with wrap0:
print('context manager', dummy.getstack())
# Bad programmer forgets to unwrap the function, but the context
# managers still unwrap their wrappings.
extensions.wrapfunction(dummy, 'getstack', wrappers[2])
print('context manager', dummy.getstack())
print('context manager', dummy.getstack())
print('context manager', dummy.getstack())
Yuya Nishihara
extensions: fix wrapcommand/function of class instance...
r34130
Raphaël Gomès
black: format the codebase with 23.3.0...
r52596
Yuya Nishihara
extensions: fix wrapcommand/function of class instance...
r34130 # Wrap callable object which has no __name__
Gregory Szorc
py3: use class X: instead of class X(object):...
r49801 class callableobj:
Yuya Nishihara
extensions: fix wrapcommand/function of class instance...
r34130 def __call__(self):
return ['orig']
Augie Fackler
formatting: blacken the codebase...
r43346
Yuya Nishihara
extensions: fix wrapcommand/function of class instance...
r34130 dummy.cobj = callableobj()
extensions.wrapfunction(dummy, 'cobj', wrappers[0])
print('wrap callable object', dummy.cobj())