##// END OF EJS Templates
tests: use absolulte_import in test-wireproto.py
Gregory Szorc -
r27301:5defcb7d default
parent child Browse files
Show More
@@ -1,225 +1,224 b''
1 #require test-repo
1 #require test-repo
2
2
3 $ cd "$TESTDIR"/..
3 $ cd "$TESTDIR"/..
4
4
5 $ hg files 'set:(**.py)' | xargs python contrib/check-py3-compat.py
5 $ hg files 'set:(**.py)' | xargs python contrib/check-py3-compat.py
6 contrib/casesmash.py not using absolute_import
6 contrib/casesmash.py not using absolute_import
7 contrib/check-code.py not using absolute_import
7 contrib/check-code.py not using absolute_import
8 contrib/check-code.py requires print_function
8 contrib/check-code.py requires print_function
9 contrib/check-config.py not using absolute_import
9 contrib/check-config.py not using absolute_import
10 contrib/check-config.py requires print_function
10 contrib/check-config.py requires print_function
11 contrib/debugcmdserver.py not using absolute_import
11 contrib/debugcmdserver.py not using absolute_import
12 contrib/debugcmdserver.py requires print_function
12 contrib/debugcmdserver.py requires print_function
13 contrib/debugshell.py not using absolute_import
13 contrib/debugshell.py not using absolute_import
14 contrib/fixpax.py not using absolute_import
14 contrib/fixpax.py not using absolute_import
15 contrib/fixpax.py requires print_function
15 contrib/fixpax.py requires print_function
16 contrib/hgclient.py not using absolute_import
16 contrib/hgclient.py not using absolute_import
17 contrib/hgclient.py requires print_function
17 contrib/hgclient.py requires print_function
18 contrib/hgfixes/__init__.py not using absolute_import
18 contrib/hgfixes/__init__.py not using absolute_import
19 contrib/hgfixes/fix_bytes.py not using absolute_import
19 contrib/hgfixes/fix_bytes.py not using absolute_import
20 contrib/hgfixes/fix_bytesmod.py not using absolute_import
20 contrib/hgfixes/fix_bytesmod.py not using absolute_import
21 contrib/hgfixes/fix_leftover_imports.py not using absolute_import
21 contrib/hgfixes/fix_leftover_imports.py not using absolute_import
22 contrib/import-checker.py not using absolute_import
22 contrib/import-checker.py not using absolute_import
23 contrib/import-checker.py requires print_function
23 contrib/import-checker.py requires print_function
24 contrib/memory.py not using absolute_import
24 contrib/memory.py not using absolute_import
25 contrib/perf.py not using absolute_import
25 contrib/perf.py not using absolute_import
26 contrib/python-hook-examples.py not using absolute_import
26 contrib/python-hook-examples.py not using absolute_import
27 contrib/revsetbenchmarks.py not using absolute_import
27 contrib/revsetbenchmarks.py not using absolute_import
28 contrib/revsetbenchmarks.py requires print_function
28 contrib/revsetbenchmarks.py requires print_function
29 contrib/showstack.py not using absolute_import
29 contrib/showstack.py not using absolute_import
30 contrib/synthrepo.py not using absolute_import
30 contrib/synthrepo.py not using absolute_import
31 contrib/win32/hgwebdir_wsgi.py not using absolute_import
31 contrib/win32/hgwebdir_wsgi.py not using absolute_import
32 doc/check-seclevel.py not using absolute_import
32 doc/check-seclevel.py not using absolute_import
33 doc/gendoc.py not using absolute_import
33 doc/gendoc.py not using absolute_import
34 doc/hgmanpage.py not using absolute_import
34 doc/hgmanpage.py not using absolute_import
35 hgext/__init__.py not using absolute_import
35 hgext/__init__.py not using absolute_import
36 hgext/acl.py not using absolute_import
36 hgext/acl.py not using absolute_import
37 hgext/blackbox.py not using absolute_import
37 hgext/blackbox.py not using absolute_import
38 hgext/bugzilla.py not using absolute_import
38 hgext/bugzilla.py not using absolute_import
39 hgext/censor.py not using absolute_import
39 hgext/censor.py not using absolute_import
40 hgext/children.py not using absolute_import
40 hgext/children.py not using absolute_import
41 hgext/churn.py not using absolute_import
41 hgext/churn.py not using absolute_import
42 hgext/clonebundles.py not using absolute_import
42 hgext/clonebundles.py not using absolute_import
43 hgext/color.py not using absolute_import
43 hgext/color.py not using absolute_import
44 hgext/convert/__init__.py not using absolute_import
44 hgext/convert/__init__.py not using absolute_import
45 hgext/convert/bzr.py not using absolute_import
45 hgext/convert/bzr.py not using absolute_import
46 hgext/convert/common.py not using absolute_import
46 hgext/convert/common.py not using absolute_import
47 hgext/convert/convcmd.py not using absolute_import
47 hgext/convert/convcmd.py not using absolute_import
48 hgext/convert/cvs.py not using absolute_import
48 hgext/convert/cvs.py not using absolute_import
49 hgext/convert/cvsps.py not using absolute_import
49 hgext/convert/cvsps.py not using absolute_import
50 hgext/convert/darcs.py not using absolute_import
50 hgext/convert/darcs.py not using absolute_import
51 hgext/convert/filemap.py not using absolute_import
51 hgext/convert/filemap.py not using absolute_import
52 hgext/convert/git.py not using absolute_import
52 hgext/convert/git.py not using absolute_import
53 hgext/convert/gnuarch.py not using absolute_import
53 hgext/convert/gnuarch.py not using absolute_import
54 hgext/convert/hg.py not using absolute_import
54 hgext/convert/hg.py not using absolute_import
55 hgext/convert/monotone.py not using absolute_import
55 hgext/convert/monotone.py not using absolute_import
56 hgext/convert/p4.py not using absolute_import
56 hgext/convert/p4.py not using absolute_import
57 hgext/convert/subversion.py not using absolute_import
57 hgext/convert/subversion.py not using absolute_import
58 hgext/convert/transport.py not using absolute_import
58 hgext/convert/transport.py not using absolute_import
59 hgext/eol.py not using absolute_import
59 hgext/eol.py not using absolute_import
60 hgext/extdiff.py not using absolute_import
60 hgext/extdiff.py not using absolute_import
61 hgext/factotum.py not using absolute_import
61 hgext/factotum.py not using absolute_import
62 hgext/fetch.py not using absolute_import
62 hgext/fetch.py not using absolute_import
63 hgext/gpg.py not using absolute_import
63 hgext/gpg.py not using absolute_import
64 hgext/graphlog.py not using absolute_import
64 hgext/graphlog.py not using absolute_import
65 hgext/hgcia.py not using absolute_import
65 hgext/hgcia.py not using absolute_import
66 hgext/hgk.py not using absolute_import
66 hgext/hgk.py not using absolute_import
67 hgext/highlight/__init__.py not using absolute_import
67 hgext/highlight/__init__.py not using absolute_import
68 hgext/highlight/highlight.py not using absolute_import
68 hgext/highlight/highlight.py not using absolute_import
69 hgext/histedit.py not using absolute_import
69 hgext/histedit.py not using absolute_import
70 hgext/keyword.py not using absolute_import
70 hgext/keyword.py not using absolute_import
71 hgext/largefiles/__init__.py not using absolute_import
71 hgext/largefiles/__init__.py not using absolute_import
72 hgext/largefiles/basestore.py not using absolute_import
72 hgext/largefiles/basestore.py not using absolute_import
73 hgext/largefiles/lfcommands.py not using absolute_import
73 hgext/largefiles/lfcommands.py not using absolute_import
74 hgext/largefiles/lfutil.py not using absolute_import
74 hgext/largefiles/lfutil.py not using absolute_import
75 hgext/largefiles/localstore.py not using absolute_import
75 hgext/largefiles/localstore.py not using absolute_import
76 hgext/largefiles/overrides.py not using absolute_import
76 hgext/largefiles/overrides.py not using absolute_import
77 hgext/largefiles/proto.py not using absolute_import
77 hgext/largefiles/proto.py not using absolute_import
78 hgext/largefiles/remotestore.py not using absolute_import
78 hgext/largefiles/remotestore.py not using absolute_import
79 hgext/largefiles/reposetup.py not using absolute_import
79 hgext/largefiles/reposetup.py not using absolute_import
80 hgext/largefiles/uisetup.py not using absolute_import
80 hgext/largefiles/uisetup.py not using absolute_import
81 hgext/largefiles/wirestore.py not using absolute_import
81 hgext/largefiles/wirestore.py not using absolute_import
82 hgext/mq.py not using absolute_import
82 hgext/mq.py not using absolute_import
83 hgext/notify.py not using absolute_import
83 hgext/notify.py not using absolute_import
84 hgext/pager.py not using absolute_import
84 hgext/pager.py not using absolute_import
85 hgext/patchbomb.py not using absolute_import
85 hgext/patchbomb.py not using absolute_import
86 hgext/purge.py not using absolute_import
86 hgext/purge.py not using absolute_import
87 hgext/rebase.py not using absolute_import
87 hgext/rebase.py not using absolute_import
88 hgext/record.py not using absolute_import
88 hgext/record.py not using absolute_import
89 hgext/relink.py not using absolute_import
89 hgext/relink.py not using absolute_import
90 hgext/schemes.py not using absolute_import
90 hgext/schemes.py not using absolute_import
91 hgext/share.py not using absolute_import
91 hgext/share.py not using absolute_import
92 hgext/shelve.py not using absolute_import
92 hgext/shelve.py not using absolute_import
93 hgext/strip.py not using absolute_import
93 hgext/strip.py not using absolute_import
94 hgext/transplant.py not using absolute_import
94 hgext/transplant.py not using absolute_import
95 hgext/win32mbcs.py not using absolute_import
95 hgext/win32mbcs.py not using absolute_import
96 hgext/win32text.py not using absolute_import
96 hgext/win32text.py not using absolute_import
97 hgext/zeroconf/Zeroconf.py not using absolute_import
97 hgext/zeroconf/Zeroconf.py not using absolute_import
98 hgext/zeroconf/Zeroconf.py requires print_function
98 hgext/zeroconf/Zeroconf.py requires print_function
99 hgext/zeroconf/__init__.py not using absolute_import
99 hgext/zeroconf/__init__.py not using absolute_import
100 i18n/check-translation.py not using absolute_import
100 i18n/check-translation.py not using absolute_import
101 i18n/polib.py not using absolute_import
101 i18n/polib.py not using absolute_import
102 mercurial/byterange.py not using absolute_import
102 mercurial/byterange.py not using absolute_import
103 mercurial/cmdutil.py not using absolute_import
103 mercurial/cmdutil.py not using absolute_import
104 mercurial/commands.py not using absolute_import
104 mercurial/commands.py not using absolute_import
105 mercurial/commandserver.py not using absolute_import
105 mercurial/commandserver.py not using absolute_import
106 mercurial/context.py not using absolute_import
106 mercurial/context.py not using absolute_import
107 mercurial/destutil.py not using absolute_import
107 mercurial/destutil.py not using absolute_import
108 mercurial/dirstate.py not using absolute_import
108 mercurial/dirstate.py not using absolute_import
109 mercurial/dispatch.py requires print_function
109 mercurial/dispatch.py requires print_function
110 mercurial/encoding.py not using absolute_import
110 mercurial/encoding.py not using absolute_import
111 mercurial/exchange.py not using absolute_import
111 mercurial/exchange.py not using absolute_import
112 mercurial/help.py not using absolute_import
112 mercurial/help.py not using absolute_import
113 mercurial/httpclient/__init__.py not using absolute_import
113 mercurial/httpclient/__init__.py not using absolute_import
114 mercurial/httpclient/_readers.py not using absolute_import
114 mercurial/httpclient/_readers.py not using absolute_import
115 mercurial/httpclient/socketutil.py not using absolute_import
115 mercurial/httpclient/socketutil.py not using absolute_import
116 mercurial/httpconnection.py not using absolute_import
116 mercurial/httpconnection.py not using absolute_import
117 mercurial/keepalive.py not using absolute_import
117 mercurial/keepalive.py not using absolute_import
118 mercurial/keepalive.py requires print_function
118 mercurial/keepalive.py requires print_function
119 mercurial/localrepo.py not using absolute_import
119 mercurial/localrepo.py not using absolute_import
120 mercurial/lsprof.py requires print_function
120 mercurial/lsprof.py requires print_function
121 mercurial/lsprofcalltree.py not using absolute_import
121 mercurial/lsprofcalltree.py not using absolute_import
122 mercurial/lsprofcalltree.py requires print_function
122 mercurial/lsprofcalltree.py requires print_function
123 mercurial/mail.py requires print_function
123 mercurial/mail.py requires print_function
124 mercurial/manifest.py not using absolute_import
124 mercurial/manifest.py not using absolute_import
125 mercurial/mdiff.py not using absolute_import
125 mercurial/mdiff.py not using absolute_import
126 mercurial/obsolete.py not using absolute_import
126 mercurial/obsolete.py not using absolute_import
127 mercurial/patch.py not using absolute_import
127 mercurial/patch.py not using absolute_import
128 mercurial/pure/__init__.py not using absolute_import
128 mercurial/pure/__init__.py not using absolute_import
129 mercurial/pure/base85.py not using absolute_import
129 mercurial/pure/base85.py not using absolute_import
130 mercurial/pure/bdiff.py not using absolute_import
130 mercurial/pure/bdiff.py not using absolute_import
131 mercurial/pure/diffhelpers.py not using absolute_import
131 mercurial/pure/diffhelpers.py not using absolute_import
132 mercurial/pure/mpatch.py not using absolute_import
132 mercurial/pure/mpatch.py not using absolute_import
133 mercurial/pure/osutil.py not using absolute_import
133 mercurial/pure/osutil.py not using absolute_import
134 mercurial/pure/parsers.py not using absolute_import
134 mercurial/pure/parsers.py not using absolute_import
135 mercurial/pvec.py not using absolute_import
135 mercurial/pvec.py not using absolute_import
136 mercurial/py3kcompat.py not using absolute_import
136 mercurial/py3kcompat.py not using absolute_import
137 mercurial/revlog.py not using absolute_import
137 mercurial/revlog.py not using absolute_import
138 mercurial/scmposix.py not using absolute_import
138 mercurial/scmposix.py not using absolute_import
139 mercurial/scmutil.py not using absolute_import
139 mercurial/scmutil.py not using absolute_import
140 mercurial/scmwindows.py not using absolute_import
140 mercurial/scmwindows.py not using absolute_import
141 mercurial/similar.py not using absolute_import
141 mercurial/similar.py not using absolute_import
142 mercurial/store.py not using absolute_import
142 mercurial/store.py not using absolute_import
143 mercurial/util.py not using absolute_import
143 mercurial/util.py not using absolute_import
144 mercurial/windows.py not using absolute_import
144 mercurial/windows.py not using absolute_import
145 setup.py not using absolute_import
145 setup.py not using absolute_import
146 tests/filterpyflakes.py requires print_function
146 tests/filterpyflakes.py requires print_function
147 tests/generate-working-copy-states.py requires print_function
147 tests/generate-working-copy-states.py requires print_function
148 tests/get-with-headers.py requires print_function
148 tests/get-with-headers.py requires print_function
149 tests/heredoctest.py requires print_function
149 tests/heredoctest.py requires print_function
150 tests/hypothesishelpers.py not using absolute_import
150 tests/hypothesishelpers.py not using absolute_import
151 tests/hypothesishelpers.py requires print_function
151 tests/hypothesishelpers.py requires print_function
152 tests/killdaemons.py not using absolute_import
152 tests/killdaemons.py not using absolute_import
153 tests/md5sum.py not using absolute_import
153 tests/md5sum.py not using absolute_import
154 tests/mockblackbox.py not using absolute_import
154 tests/mockblackbox.py not using absolute_import
155 tests/printenv.py not using absolute_import
155 tests/printenv.py not using absolute_import
156 tests/readlink.py not using absolute_import
156 tests/readlink.py not using absolute_import
157 tests/readlink.py requires print_function
157 tests/readlink.py requires print_function
158 tests/revlog-formatv0.py not using absolute_import
158 tests/revlog-formatv0.py not using absolute_import
159 tests/run-tests.py not using absolute_import
159 tests/run-tests.py not using absolute_import
160 tests/seq.py not using absolute_import
160 tests/seq.py not using absolute_import
161 tests/seq.py requires print_function
161 tests/seq.py requires print_function
162 tests/silenttestrunner.py not using absolute_import
162 tests/silenttestrunner.py not using absolute_import
163 tests/silenttestrunner.py requires print_function
163 tests/silenttestrunner.py requires print_function
164 tests/sitecustomize.py not using absolute_import
164 tests/sitecustomize.py not using absolute_import
165 tests/svn-safe-append.py not using absolute_import
165 tests/svn-safe-append.py not using absolute_import
166 tests/svnxml.py not using absolute_import
166 tests/svnxml.py not using absolute_import
167 tests/test-ancestor.py requires print_function
167 tests/test-ancestor.py requires print_function
168 tests/test-atomictempfile.py not using absolute_import
168 tests/test-atomictempfile.py not using absolute_import
169 tests/test-batching.py not using absolute_import
169 tests/test-batching.py not using absolute_import
170 tests/test-batching.py requires print_function
170 tests/test-batching.py requires print_function
171 tests/test-bdiff.py not using absolute_import
171 tests/test-bdiff.py not using absolute_import
172 tests/test-bdiff.py requires print_function
172 tests/test-bdiff.py requires print_function
173 tests/test-context.py not using absolute_import
173 tests/test-context.py not using absolute_import
174 tests/test-context.py requires print_function
174 tests/test-context.py requires print_function
175 tests/test-demandimport.py not using absolute_import
175 tests/test-demandimport.py not using absolute_import
176 tests/test-demandimport.py requires print_function
176 tests/test-demandimport.py requires print_function
177 tests/test-dispatch.py not using absolute_import
177 tests/test-dispatch.py not using absolute_import
178 tests/test-dispatch.py requires print_function
178 tests/test-dispatch.py requires print_function
179 tests/test-doctest.py not using absolute_import
179 tests/test-doctest.py not using absolute_import
180 tests/test-duplicateoptions.py not using absolute_import
180 tests/test-duplicateoptions.py not using absolute_import
181 tests/test-duplicateoptions.py requires print_function
181 tests/test-duplicateoptions.py requires print_function
182 tests/test-filecache.py not using absolute_import
182 tests/test-filecache.py not using absolute_import
183 tests/test-filecache.py requires print_function
183 tests/test-filecache.py requires print_function
184 tests/test-filelog.py not using absolute_import
184 tests/test-filelog.py not using absolute_import
185 tests/test-filelog.py requires print_function
185 tests/test-filelog.py requires print_function
186 tests/test-hg-parseurl.py not using absolute_import
186 tests/test-hg-parseurl.py not using absolute_import
187 tests/test-hg-parseurl.py requires print_function
187 tests/test-hg-parseurl.py requires print_function
188 tests/test-hgweb-auth.py not using absolute_import
188 tests/test-hgweb-auth.py not using absolute_import
189 tests/test-hgweb-auth.py requires print_function
189 tests/test-hgweb-auth.py requires print_function
190 tests/test-hgwebdir-paths.py not using absolute_import
190 tests/test-hgwebdir-paths.py not using absolute_import
191 tests/test-hybridencode.py not using absolute_import
191 tests/test-hybridencode.py not using absolute_import
192 tests/test-hybridencode.py requires print_function
192 tests/test-hybridencode.py requires print_function
193 tests/test-lrucachedict.py not using absolute_import
193 tests/test-lrucachedict.py not using absolute_import
194 tests/test-lrucachedict.py requires print_function
194 tests/test-lrucachedict.py requires print_function
195 tests/test-manifest.py not using absolute_import
195 tests/test-manifest.py not using absolute_import
196 tests/test-minirst.py not using absolute_import
196 tests/test-minirst.py not using absolute_import
197 tests/test-minirst.py requires print_function
197 tests/test-minirst.py requires print_function
198 tests/test-parseindex2.py not using absolute_import
198 tests/test-parseindex2.py not using absolute_import
199 tests/test-parseindex2.py requires print_function
199 tests/test-parseindex2.py requires print_function
200 tests/test-pathencode.py not using absolute_import
200 tests/test-pathencode.py not using absolute_import
201 tests/test-pathencode.py requires print_function
201 tests/test-pathencode.py requires print_function
202 tests/test-propertycache.py not using absolute_import
202 tests/test-propertycache.py not using absolute_import
203 tests/test-propertycache.py requires print_function
203 tests/test-propertycache.py requires print_function
204 tests/test-revlog-ancestry.py not using absolute_import
204 tests/test-revlog-ancestry.py not using absolute_import
205 tests/test-revlog-ancestry.py requires print_function
205 tests/test-revlog-ancestry.py requires print_function
206 tests/test-run-tests.py not using absolute_import
206 tests/test-run-tests.py not using absolute_import
207 tests/test-simplemerge.py not using absolute_import
207 tests/test-simplemerge.py not using absolute_import
208 tests/test-status-inprocess.py not using absolute_import
208 tests/test-status-inprocess.py not using absolute_import
209 tests/test-status-inprocess.py requires print_function
209 tests/test-status-inprocess.py requires print_function
210 tests/test-symlink-os-yes-fs-no.py not using absolute_import
210 tests/test-symlink-os-yes-fs-no.py not using absolute_import
211 tests/test-trusted.py not using absolute_import
211 tests/test-trusted.py not using absolute_import
212 tests/test-trusted.py requires print_function
212 tests/test-trusted.py requires print_function
213 tests/test-ui-color.py not using absolute_import
213 tests/test-ui-color.py not using absolute_import
214 tests/test-ui-color.py requires print_function
214 tests/test-ui-color.py requires print_function
215 tests/test-ui-config.py not using absolute_import
215 tests/test-ui-config.py not using absolute_import
216 tests/test-ui-config.py requires print_function
216 tests/test-ui-config.py requires print_function
217 tests/test-ui-verbosity.py not using absolute_import
217 tests/test-ui-verbosity.py not using absolute_import
218 tests/test-ui-verbosity.py requires print_function
218 tests/test-ui-verbosity.py requires print_function
219 tests/test-url.py not using absolute_import
219 tests/test-url.py not using absolute_import
220 tests/test-url.py requires print_function
220 tests/test-url.py requires print_function
221 tests/test-walkrepo.py requires print_function
221 tests/test-walkrepo.py requires print_function
222 tests/test-wireproto.py not using absolute_import
223 tests/test-wireproto.py requires print_function
222 tests/test-wireproto.py requires print_function
224 tests/tinyproxy.py not using absolute_import
223 tests/tinyproxy.py not using absolute_import
225 tests/tinyproxy.py requires print_function
224 tests/tinyproxy.py requires print_function
@@ -1,52 +1,54 b''
1 from __future__ import absolute_import
2
1 from mercurial import wireproto
3 from mercurial import wireproto
2
4
3 class proto(object):
5 class proto(object):
4 def __init__(self, args):
6 def __init__(self, args):
5 self.args = args
7 self.args = args
6 def getargs(self, spec):
8 def getargs(self, spec):
7 args = self.args
9 args = self.args
8 args.setdefault('*', {})
10 args.setdefault('*', {})
9 names = spec.split()
11 names = spec.split()
10 return [args[n] for n in names]
12 return [args[n] for n in names]
11
13
12 class clientpeer(wireproto.wirepeer):
14 class clientpeer(wireproto.wirepeer):
13 def __init__(self, serverrepo):
15 def __init__(self, serverrepo):
14 self.serverrepo = serverrepo
16 self.serverrepo = serverrepo
15
17
16 def _capabilities(self):
18 def _capabilities(self):
17 return ['batch']
19 return ['batch']
18
20
19 def _call(self, cmd, **args):
21 def _call(self, cmd, **args):
20 return wireproto.dispatch(self.serverrepo, proto(args), cmd)
22 return wireproto.dispatch(self.serverrepo, proto(args), cmd)
21
23
22 @wireproto.batchable
24 @wireproto.batchable
23 def greet(self, name):
25 def greet(self, name):
24 f = wireproto.future()
26 f = wireproto.future()
25 yield {'name': mangle(name)}, f
27 yield {'name': mangle(name)}, f
26 yield unmangle(f.value)
28 yield unmangle(f.value)
27
29
28 class serverrepo(object):
30 class serverrepo(object):
29 def greet(self, name):
31 def greet(self, name):
30 return "Hello, " + name
32 return "Hello, " + name
31
33
32 def filtered(self, name):
34 def filtered(self, name):
33 return self
35 return self
34
36
35 def mangle(s):
37 def mangle(s):
36 return ''.join(chr(ord(c) + 1) for c in s)
38 return ''.join(chr(ord(c) + 1) for c in s)
37 def unmangle(s):
39 def unmangle(s):
38 return ''.join(chr(ord(c) - 1) for c in s)
40 return ''.join(chr(ord(c) - 1) for c in s)
39
41
40 def greet(repo, proto, name):
42 def greet(repo, proto, name):
41 return mangle(repo.greet(unmangle(name)))
43 return mangle(repo.greet(unmangle(name)))
42
44
43 wireproto.commands['greet'] = (greet, 'name',)
45 wireproto.commands['greet'] = (greet, 'name',)
44
46
45 srv = serverrepo()
47 srv = serverrepo()
46 clt = clientpeer(srv)
48 clt = clientpeer(srv)
47
49
48 print clt.greet("Foobar")
50 print clt.greet("Foobar")
49 b = clt.batch()
51 b = clt.batch()
50 fs = [b.greet(s) for s in ["Fo, =;:<o", "Bar"]]
52 fs = [b.greet(s) for s in ["Fo, =;:<o", "Bar"]]
51 b.submit()
53 b.submit()
52 print [f.value for f in fs]
54 print [f.value for f in fs]
General Comments 0
You need to be logged in to leave comments. Login now