feat: progress on rcf

This commit is contained in:
Swann
2019-07-06 12:52:15 +02:00
parent c5dc46f63d
commit d4f48f09a0
2 changed files with 40 additions and 24 deletions

View File

@ -8,13 +8,19 @@ logging.basicConfig(level=logging.DEBUG)
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
class Client(object): class Client(object):
def __init__(self,config=None): def __init__(self,factory=None, config=None):
self.rep_store = {} self.rep_store = {}
self.net = ClientNetService(self.rep_store) self.net = ClientNetService(self.rep_store)
self.factory = factory
def connect(self): def connect(self):
self.net.start() self.net.start()
def replicate(self, object):
new_item = self.factory.construct(object)(owner="client")
new_item.store(self.rep_store)
def state(self): def state(self):
return self.net.state return self.net.state
@ -77,6 +83,7 @@ class Server():
def __init__(self,config=None): def __init__(self,config=None):
self.rep_store = {} self.rep_store = {}
self.net = ServerNetService(self.rep_store) self.net = ServerNetService(self.rep_store)
# self.serve()
def serve(self): def serve(self):
self.net.start() self.net.start()
@ -116,10 +123,6 @@ class ServerNetService(threading.Thread):
self.pull.setsockopt(zmq.RCVHWM, 60) self.pull.setsockopt(zmq.RCVHWM, 60)
self.pull.bind("tcp://*:5562") self.pull.bind("tcp://*:5562")
# poller for socket aggregation
self.poller = zmq.Poller()
self.poller.register(self.snapshot, zmq.POLLIN)
self.poller.register(self.pull, zmq.POLLIN)
self.state = 0 self.state = 0
@ -136,4 +139,4 @@ class ServerNetService(threading.Thread):
if not items: if not items:
pass pass
time.sleep(1) time.sleep(.1)

View File

@ -31,33 +31,46 @@ class RepSampleData(ReplicatedDatablock):
class TestData(unittest.TestCase): class TestData(unittest.TestCase):
def setUp(self): def setUp(self):
self.map = {} self.map = {}
self.client_api = Client()
self.server_api = Server()
def test_server_launching(self): # def test_server_launching(self):
log.info("test_server_launching") # log.info("test_server_launching")
self.server_api.serve() # self.server_api.serve()
time.sleep(1) # time.sleep(1)
self.assertEqual(self.server_api.state(),1) # self.assertEqual(self.server_api.state(),1)
# def test_server_stop(self):
# log.info("test_server_launching")
# self.server_api.stop()
# time.sleep(1)
# self.assertEqual(self.server_api.state(),0)
def test_setup_data_factory(self): def test_setup_data_factory(self):
factory = ReplicatedDataFactory() self.factory = ReplicatedDataFactory()
factory.register_type(SampleData, RepSampleData) self.factory.register_type(SampleData, RepSampleData)
data_sample = SampleData() data_sample = SampleData()
rep_sample = factory.construct(data_sample)(owner="toto") rep_sample = self.factory.construct(data_sample)(owner="toto")
self.assertEqual(isinstance(rep_sample,RepSampleData), True) self.assertEqual(isinstance(rep_sample,RepSampleData), True)
def test_client_connect(self): def test_setup_net(self):
log.info("test_client_connect") self.server_api = Server()
self.server_api.serve()
self.client_api = Client()
self.client_api.connect() self.client_api.connect()
time.sleep(1)
self.assertEqual(self.client_api.state(),1)
def test_client_stop(self): def test_push_data(self):
self.client_api.stop() self.
time.sleep(1)
self.assertEqual(self.client_api.state(),0) # def test_client_connect(self):
# log.info("test_client_connect")
# self.client_api.connect()
# time.sleep(1)
# self.assertEqual(self.client_api.state(),1)
# def test_client_stop(self):
# self.client_api.stop()
# time.sleep(1)
# self.assertEqual(self.client_api.state(),0)