1
0
mirror of https://github.com/haiwen/libsearpc.git synced 2025-08-11 09:21:38 +00:00
libsearpc/pysearpc/test_pysearpc.py
2018-08-04 14:12:53 +08:00

53 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python
#coding: UTF-8
import json
import sys
import unittest
from operator import add
sys.path.insert(0, '..')
from pysearpc import (
SearpcClient, SearpcError, SearpcTransport, searpc_func, searpc_server
)
SVCNAME = 'test-service'
def multi(a, b):
return a * b
def init_server():
searpc_server.create_service(SVCNAME)
searpc_server.register_function(SVCNAME, add, 'add')
searpc_server.register_function(SVCNAME, multi, 'multi')
class DummyTransport(SearpcTransport):
def send(self, fcall_str):
return searpc_server.call_function(SVCNAME, fcall_str)
class SampleRpcClient(SearpcClient):
def __init__(self):
self.transport = DummyTransport()
def call_remote_func_sync(self, fcall_str):
return self.transport.send(fcall_str)
@searpc_func("int", ["int", "int"])
def add(self, x, y):
pass
class SearpcTest(unittest.TestCase):
def setUp(self):
init_server()
self.client = SampleRpcClient()
def testNormalTransport(self):
v = self.client.add(1, 2)
self.assertEqual(v, 3)
if __name__ == '__main__':
unittest.main()