From d4f48f09a056e1f6372a19a1736286ee07b4b877 Mon Sep 17 00:00:00 2001 From: Swann Date: Sat, 6 Jul 2019 12:52:15 +0200 Subject: [PATCH] feat: progress on rcf --- replication_client.py | 15 +++++++------ test_replication.py | 49 +++++++++++++++++++++++++++---------------- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/replication_client.py b/replication_client.py index f834d37..85a48ab 100644 --- a/replication_client.py +++ b/replication_client.py @@ -8,13 +8,19 @@ logging.basicConfig(level=logging.DEBUG) log = logging.getLogger(__name__) class Client(object): - def __init__(self,config=None): + def __init__(self,factory=None, config=None): self.rep_store = {} self.net = ClientNetService(self.rep_store) + self.factory = factory def connect(self): self.net.start() + def replicate(self, object): + new_item = self.factory.construct(object)(owner="client") + + new_item.store(self.rep_store) + def state(self): return self.net.state @@ -77,6 +83,7 @@ class Server(): def __init__(self,config=None): self.rep_store = {} self.net = ServerNetService(self.rep_store) + # self.serve() def serve(self): self.net.start() @@ -116,10 +123,6 @@ class ServerNetService(threading.Thread): self.pull.setsockopt(zmq.RCVHWM, 60) 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 @@ -136,4 +139,4 @@ class ServerNetService(threading.Thread): if not items: pass - time.sleep(1) \ No newline at end of file + time.sleep(.1) \ No newline at end of file diff --git a/test_replication.py b/test_replication.py index 8e4787e..7be9608 100644 --- a/test_replication.py +++ b/test_replication.py @@ -31,33 +31,46 @@ class RepSampleData(ReplicatedDatablock): class TestData(unittest.TestCase): def setUp(self): self.map = {} - self.client_api = Client() - self.server_api = Server() - def test_server_launching(self): - log.info("test_server_launching") - self.server_api.serve() - time.sleep(1) - self.assertEqual(self.server_api.state(),1) + # def test_server_launching(self): + # log.info("test_server_launching") + # self.server_api.serve() + # time.sleep(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): - factory = ReplicatedDataFactory() - factory.register_type(SampleData, RepSampleData) + self.factory = ReplicatedDataFactory() + self.factory.register_type(SampleData, RepSampleData) 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) - def test_client_connect(self): - log.info("test_client_connect") + def test_setup_net(self): + self.server_api = Server() + self.server_api.serve() + self.client_api = Client() self.client_api.connect() - time.sleep(1) - self.assertEqual(self.client_api.state(),1) + + def test_push_data(self): + self. + + # 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) + # def test_client_stop(self): + # self.client_api.stop() + # time.sleep(1) + # self.assertEqual(self.client_api.state(),0)