Mercurial > hg
comparison tests/test-batching.py @ 28732:e2b118592c63
py3: use print_function in test-batching.py
author | Robert Stanca <robert.stanca7@gmail.com> |
---|---|
date | Sun, 03 Apr 2016 06:10:52 +0300 |
parents | f8872b507cd3 |
children | 544908ae36ce |
comparison
equal
deleted
inserted
replaced
28731:f8872b507cd3 | 28732:e2b118592c63 |
---|---|
3 # Copyright 2011 Peter Arrenbrecht <peter@arrenbrecht.ch> | 3 # Copyright 2011 Peter Arrenbrecht <peter@arrenbrecht.ch> |
4 # | 4 # |
5 # This software may be used and distributed according to the terms of the | 5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2 or any later version. | 6 # GNU General Public License version 2 or any later version. |
7 | 7 |
8 from __future__ import absolute_import | 8 from __future__ import absolute_import, print_function |
9 from mercurial.peer import ( | 9 from mercurial.peer import ( |
10 localbatch, | 10 localbatch, |
11 batchable, | 11 batchable, |
12 future, | 12 future, |
13 ) | 13 ) |
36 | 36 |
37 # usage of "thing" interface | 37 # usage of "thing" interface |
38 def use(it): | 38 def use(it): |
39 | 39 |
40 # Direct call to base method shared between client and server. | 40 # Direct call to base method shared between client and server. |
41 print it.hello() | 41 print(it.hello()) |
42 | 42 |
43 # Direct calls to proxied methods. They cause individual roundtrips. | 43 # Direct calls to proxied methods. They cause individual roundtrips. |
44 print it.foo("Un", two="Deux") | 44 print(it.foo("Un", two="Deux")) |
45 print it.bar("Eins", "Zwei") | 45 print(it.bar("Eins", "Zwei")) |
46 | 46 |
47 # Batched call to a couple of (possibly proxied) methods. | 47 # Batched call to a couple of (possibly proxied) methods. |
48 batch = it.batch() | 48 batch = it.batch() |
49 # The calls return futures to eventually hold results. | 49 # The calls return futures to eventually hold results. |
50 foo = batch.foo(one="One", two="Two") | 50 foo = batch.foo(one="One", two="Two") |
58 bar2 = batch.bar(b="Uno", a="Due") | 58 bar2 = batch.bar(b="Uno", a="Due") |
59 # Only now are all the calls executed in sequence, with as few roundtrips | 59 # Only now are all the calls executed in sequence, with as few roundtrips |
60 # as possible. | 60 # as possible. |
61 batch.submit() | 61 batch.submit() |
62 # After the call to submit, the futures actually contain values. | 62 # After the call to submit, the futures actually contain values. |
63 print foo.value | 63 print(foo.value) |
64 print foo2.value | 64 print(foo2.value) |
65 print bar.value | 65 print(bar.value) |
66 print greet.value | 66 print(greet.value) |
67 print hello.value | 67 print(hello.value) |
68 print bar2.value | 68 print(bar2.value) |
69 | 69 |
70 # local usage | 70 # local usage |
71 mylocal = localthing() | 71 mylocal = localthing() |
72 print | 72 print() |
73 print "== Local" | 73 print("== Local") |
74 use(mylocal) | 74 use(mylocal) |
75 | 75 |
76 # demo remoting; mimicks what wireproto and HTTP/SSH do | 76 # demo remoting; mimicks what wireproto and HTTP/SSH do |
77 | 77 |
78 # shared | 78 # shared |
98 self.local = local | 98 self.local = local |
99 def _call(self, name, args): | 99 def _call(self, name, args): |
100 args = dict(arg.split('=', 1) for arg in args) | 100 args = dict(arg.split('=', 1) for arg in args) |
101 return getattr(self, name)(**args) | 101 return getattr(self, name)(**args) |
102 def perform(self, req): | 102 def perform(self, req): |
103 print "REQ:", req | 103 print("REQ:", req) |
104 name, args = req.split('?', 1) | 104 name, args = req.split('?', 1) |
105 args = args.split('&') | 105 args = args.split('&') |
106 vals = dict(arg.split('=', 1) for arg in args) | 106 vals = dict(arg.split('=', 1) for arg in args) |
107 res = getattr(self, name)(**vals) | 107 res = getattr(self, name)(**vals) |
108 print " ->", res | 108 print(" ->", res) |
109 return res | 109 return res |
110 def batch(self, cmds): | 110 def batch(self, cmds): |
111 res = [] | 111 res = [] |
112 for pair in cmds.split(';'): | 112 for pair in cmds.split(';'): |
113 name, args = pair.split(':', 1) | 113 name, args = pair.split(':', 1) |
176 return unmangle(self._submitone('greet', [('name', mangle(name),)])) | 176 return unmangle(self._submitone('greet', [('name', mangle(name),)])) |
177 | 177 |
178 # demo remote usage | 178 # demo remote usage |
179 | 179 |
180 myproxy = remotething(myserver) | 180 myproxy = remotething(myserver) |
181 print | 181 print() |
182 print "== Remote" | 182 print("== Remote") |
183 use(myproxy) | 183 use(myproxy) |