Mercurial > public > mercurial-scm > hg
annotate tests/test-extensions-wrapfunction.py @ 33806:dedab036215d
wireproto: use new peer interface
The wirepeer class provides concrete implementations of peer interface
methods for calling wire protocol commands. It makes sense for this
class to inherit from the peer abstract base class. So we change
that.
Since httppeer and sshpeer have already been converted to the new
interface, peerrepository is no longer adding any value. So it has
been removed. httppeer and sshpeer have been updated to reflect the
loss of peerrepository and the inheritance of the abstract base
class in wirepeer.
The code changes in wirepeer are reordering of methods to group
by interface.
Some Python code in tests was updated to reflect changed APIs.
.. api::
peer.peerrepository has been removed. Use repository.peer abstract
base class to represent a peer repository.
Differential Revision: https://phab.mercurial-scm.org/D338
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 10 Aug 2017 20:58:28 -0700 |
parents | 19578bb84731 |
children | 47e52f079a57 |
rev | line source |
---|---|
29765
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
1 from __future__ import absolute_import, print_function |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
2 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
3 from mercurial import extensions |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
4 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
5 def genwrapper(x): |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
6 def f(orig, *args, **kwds): |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
7 return [x] + orig(*args, **kwds) |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
8 f.x = x |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
9 return f |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
10 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
11 def getid(wrapper): |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
12 return getattr(wrapper, 'x', '-') |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
13 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
14 wrappers = [genwrapper(i) for i in range(5)] |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
15 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
16 class dummyclass(object): |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
17 def getstack(self): |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
18 return ['orig'] |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
19 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
20 dummy = dummyclass() |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
21 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
22 def batchwrap(wrappers): |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
23 for w in wrappers: |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
24 extensions.wrapfunction(dummy, 'getstack', w) |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
25 print('wrap %d: %s' % (getid(w), dummy.getstack())) |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
26 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
27 def batchunwrap(wrappers): |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
28 for w in wrappers: |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
29 result = None |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
30 try: |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
31 result = extensions.unwrapfunction(dummy, 'getstack', w) |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
32 msg = str(dummy.getstack()) |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
33 except (ValueError, IndexError) as e: |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
34 msg = e.__class__.__name__ |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
35 print('unwrap %s: %s: %s' % (getid(w), getid(result), msg)) |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
36 |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
37 batchwrap(wrappers + [wrappers[0]]) |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
38 batchunwrap([(wrappers[i] if i >= 0 else None) |
19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
39 for i in [3, None, 0, 4, 0, 2, 1, None]]) |