class TestSystemWSCommsServerAndClient(unittest.TestCase): socket = 8882 def setUp(self): sf = SyncFactory("sync") self.process = Process("proc", sf) Hello(self.process, dict(mri="hello")) Counter(self.process, dict(mri="counter")) self.process.add_comms( WebsocketServerComms(self.process, dict(port=self.socket))) self.process.start() # If we don't wait long enough, sometimes the websocket_connect() # in process2 will hang... time.sleep(0.1) self.process2 = Process("proc2", sf) self.process2.add_comms( WebsocketClientComms(self.process2, dict(hostname="localhost", port=self.socket))) self.process2.start() def tearDown(self): self.socket += 1 self.process.stop() self.process2.stop() def test_server_hello_with_malcolm_client(self): block2 = self.process2.make_client_block("hello") task = Task("task", self.process2) futures = task.when_matches_async(block2["state"], "Ready") task.wait_all(futures, timeout=1) ret = block2.greet("me2") self.assertEqual(ret, dict(greeting="Hello me2")) def test_server_counter_with_malcolm_client(self): block2 = self.process2.make_client_block("counter") task = Task("task", self.process2) futures = task.when_matches_async(block2["state"], "Ready") task.wait_all(futures, timeout=1) self.assertEqual(block2.counter, 0) block2.increment() self.assertEqual(block2.counter, 1)