##// END OF EJS Templates
test-wireproto: move from dict() construction to {} literals...
Augie Fackler -
r20686:c69f6290 default
parent child Browse files
Show More
@@ -1,48 +1,48 b''
1 from mercurial import wireproto
1 from mercurial import wireproto
2
2
3 class proto(object):
3 class proto(object):
4 def __init__(self, args):
4 def __init__(self, args):
5 self.args = args
5 self.args = args
6 def getargs(self, spec):
6 def getargs(self, spec):
7 args = self.args
7 args = self.args
8 args.setdefault('*', {})
8 args.setdefault('*', {})
9 names = spec.split()
9 names = spec.split()
10 return [args[n] for n in names]
10 return [args[n] for n in names]
11
11
12 class clientpeer(wireproto.wirepeer):
12 class clientpeer(wireproto.wirepeer):
13 def __init__(self, serverrepo):
13 def __init__(self, serverrepo):
14 self.serverrepo = serverrepo
14 self.serverrepo = serverrepo
15 def _call(self, cmd, **args):
15 def _call(self, cmd, **args):
16 return wireproto.dispatch(self.serverrepo, proto(args), cmd)
16 return wireproto.dispatch(self.serverrepo, proto(args), cmd)
17
17
18 @wireproto.batchable
18 @wireproto.batchable
19 def greet(self, name):
19 def greet(self, name):
20 f = wireproto.future()
20 f = wireproto.future()
21 yield wireproto.todict(name=mangle(name)), f
21 yield {'name': mangle(name)}, f
22 yield unmangle(f.value)
22 yield unmangle(f.value)
23
23
24 class serverrepo(object):
24 class serverrepo(object):
25 def greet(self, name):
25 def greet(self, name):
26 return "Hello, " + name
26 return "Hello, " + name
27
27
28 def filtered(self, name):
28 def filtered(self, name):
29 return self
29 return self
30
30
31 def mangle(s):
31 def mangle(s):
32 return ''.join(chr(ord(c) + 1) for c in s)
32 return ''.join(chr(ord(c) + 1) for c in s)
33 def unmangle(s):
33 def unmangle(s):
34 return ''.join(chr(ord(c) - 1) for c in s)
34 return ''.join(chr(ord(c) - 1) for c in s)
35
35
36 def greet(repo, proto, name):
36 def greet(repo, proto, name):
37 return mangle(repo.greet(unmangle(name)))
37 return mangle(repo.greet(unmangle(name)))
38
38
39 wireproto.commands['greet'] = (greet, 'name',)
39 wireproto.commands['greet'] = (greet, 'name',)
40
40
41 srv = serverrepo()
41 srv = serverrepo()
42 clt = clientpeer(srv)
42 clt = clientpeer(srv)
43
43
44 print clt.greet("Foobar")
44 print clt.greet("Foobar")
45 b = clt.batch()
45 b = clt.batch()
46 fs = [b.greet(s) for s in ["Fo, =;o", "Bar"]]
46 fs = [b.greet(s) for s in ["Fo, =;o", "Bar"]]
47 b.submit()
47 b.submit()
48 print [f.value for f in fs]
48 print [f.value for f in fs]
General Comments 0
You need to be logged in to leave comments. Login now