def test_reregister(self): with rpc.context(self.rpcA): stubA = pickle.dumps(rpc.register(self.dummy)) with rpc.context(self.rpcA): stubA = pickle.loads(stubA) stubB = rpc.register(stubA) self.assertIs(stubA, stubB)
def test_blob(self): with rpc.context(self.rpcA): stub = rpc.register(self.dummy_readblob) stub_dump = pickle.dumps(stub, pickle.HIGHEST_PROTOCOL) with rpc.context(self.rpcB): stub = pickle.loads(stub_dump) actual = yield stub(blob=blob.StringBlob("Hello World!")) self.assertEqual("Hello World!", actual)
def test_kwargs(self): with rpc.context(self.rpcA): stub = rpc.register(self.dummy_arg) stub_dump = pickle.dumps(stub, pickle.HIGHEST_PROTOCOL) with rpc.context(self.rpcB): stub = pickle.loads(stub_dump) actual = yield stub(arg="Hello") self.assertEqual("Hello", actual)
def test_call(self): with rpc.context(self.rpcA): stub = rpc.register(self.dummy) stub_dump = pickle.dumps(stub, pickle.HIGHEST_PROTOCOL) with rpc.context(self.rpcB): stub = pickle.loads(stub_dump) actual = yield stub() self.assertEqual(42, actual)
def test_return_blob(self): with rpc.context(self.rpcA): stub = rpc.register(self.dummy_writeblob) stub_dump = pickle.dumps(stub, pickle.HIGHEST_PROTOCOL) with rpc.context(self.rpcB): stub = pickle.loads(stub_dump) returned_blob = yield stub("Hello World!") actual = yield returned_blob.read_all() self.assertEqual("Hello World!", actual)
def test_param_picklefail(self): with rpc.context(self.rpcA): stub = pickle.dumps(rpc.register(self.dummy_devnull)) with rpc.context(self.rpcB): stub = pickle.loads(stub) try: yield stub(type(None)) except: pass # expected else: self.fail("Expected exception")
def test_retval_picklefail(self): with rpc.context(self.rpcA): stub = pickle.dumps(rpc.register(self.dummy_picklefail)) with rpc.context(self.rpcB): stub = pickle.loads(stub) try: yield stub() except: pass # expected else: self.fail("Expected exception")
def test_echo_blob(self): datalist = ["Hello World!"]*(100*1024) with rpc.context(self.rpcA): stub = rpc.register(self.dummy_echoblob) stub_dump = pickle.dumps(stub, pickle.HIGHEST_PROTOCOL) with rpc.context(self.rpcB): stub = pickle.loads(stub_dump) returned_blob = yield stub(blob=blob.StringListBlob(datalist)) actual = yield returned_blob.read_all() self.assertEqual("Hello World!"*(100*1024), actual)
def test_slow_sender(self): datablocks = ["."*(8*1024)]*1024 src = blob.StringListBlob(datablocks) src = blob.ThrottleBlob(src, 2*1024*1024) with rpc.context(self.rpcA): stub = rpc.register(self.dummy_readblob) stub_dump = pickle.dumps(stub, pickle.HIGHEST_PROTOCOL) with rpc.context(self.rpcB): stub = pickle.loads(stub_dump) actual = yield stub(blob=src) self.assertEqual('.'*(8*1024*1024), actual) self.assertTrue(src.max_buffer_size() <= 8*1024)
def test_slow_receiver(self): datablocks = ["."*(8*1024)]*1024 src = blob.StringListBlob(datablocks) src = blob.MeasureBlob(src) with rpc.context(self.rpcA): stub = rpc.register(self.dummy_echoblob) stub_dump = pickle.dumps(stub, pickle.HIGHEST_PROTOCOL) with rpc.context(self.rpcB): stub = pickle.loads(stub_dump) returned_blob = yield stub(blob=src) slow_blob = blob.ThrottleBlob(returned_blob, 2*1024*1024) actual = yield slow_blob.read_all() self.assertTrue(src.throughput < 4*1024*1024, "Sender's throughput not throttled: %s Mbs" % (src.throughput/1024.0/1024.0)) self.assertEqual('.'*(8*1024*1024), actual)