1 # Copyright (c) Twisted Matrix Laboratories.
2 # See LICENSE for details.
5 """PB interop server."""
7 from twisted.spread import pb, jelly, flavors
8 from twisted.internet import reactor
11 class Interop(pb.Root):
12 """Test object for PB interop tests."""
15 self.o = pb.Referenceable()
20 def remote_string(self):
23 def remote_unicode(self):
26 def remote_float(self):
29 def remote_list(self):
32 def remote_recursive(self):
37 def remote_dict(self):
40 def remote_reference(self):
43 def remote_local(self, obj):
44 d = obj.callRemote("hello")
45 d.addCallback(self._local_success)
47 def _local_success(self, result):
48 if result != "hello, world":
49 raise ValueError, "%r != %r" % (result, "hello, world")
51 def remote_receive(self, obj):
52 expected = [1, 1.5, "hi", u"hi", {1 : 2}]
54 raise ValueError, "%r != %r" % (obj, expected)
56 def remote_self(self, obj):
58 raise ValueError, "%r != %r" % (obj, self)
60 def remote_copy(self, x):
61 o = flavors.Copyable()
66 if __name__ == '__main__':
67 reactor.listenTCP(8789, pb.PBServerFactory(Interop()))