class TestLocalEndpoint(unittest.TestCase): def setUp(self): self.port = InPort("port", Mock()) self.peer_port = OutPort("peer_port", Mock()) self.local_in = LocalInEndpoint(self.port, self.peer_port) self.local_out = LocalOutEndpoint(self.peer_port, self.port) self.port.set_queue( queue.fanout_fifo.FanoutFIFO({ 'queue_length': 4, 'direction': "in" }, {})) self.peer_port.set_queue( queue.fanout_fifo.FanoutFIFO( { 'queue_length': 4, 'direction': "out" }, {})) self.peer_port.attach_endpoint(self.local_out) self.port.attach_endpoint(self.local_in) def test_is_connected(self): assert self.local_in.is_connected assert self.local_out.is_connected def test_communicate(self): self.peer_port.queue.write(0, None) self.peer_port.queue.write(1, None) for e in self.peer_port.endpoints: e.communicate() assert self.peer_port.tokens_available(4) self.local_out.port.queue.write(2, None) assert not self.peer_port.tokens_available(4) assert self.peer_port.tokens_available(3) assert self.port.tokens_available(2, self.port.id) for e in self.peer_port.endpoints: e.communicate() assert self.port.tokens_available(3, self.port.id) for i in range(3): assert self.port.queue.peek(self.port.id) == i assert self.port.tokens_available(0, self.port.id) self.port.queue.commit(self.port.id) assert self.port.tokens_available(0, self.port.id) def test_get_peer(self): assert self.local_in.get_peer() == ('local', self.peer_port.id) assert self.local_out.get_peer() == ('local', self.port.id)
class TestLocalEndpoint(unittest.TestCase): def setUp(self): self.port = InPort("port", Mock()) self.peer_port = OutPort("peer_port", Mock()) self.local_in = LocalInEndpoint(self.port, self.peer_port) self.local_out = LocalOutEndpoint(self.peer_port, self.port) self.port.set_queue(queue.fanout_fifo.FanoutFIFO(5)) self.peer_port.set_queue(queue.fanout_fifo.FanoutFIFO(5)) self.peer_port.attach_endpoint(self.local_out) self.port.attach_endpoint(self.local_in) def test_is_connected(self): assert self.local_in.is_connected assert self.local_out.is_connected def test_communicate(self): self.peer_port.queue.write(0) self.peer_port.queue.write(1) for e in self.peer_port.endpoints: e.communicate() assert self.peer_port.tokens_available(4) self.local_out.port.queue.write(2) assert not self.peer_port.tokens_available(4) assert self.peer_port.tokens_available(3) assert self.port.tokens_available(2, self.port.id) for e in self.peer_port.endpoints: e.communicate() assert self.port.tokens_available(3, self.port.id) for i in range(3): assert self.port.queue.peek(self.port.id) == i assert self.port.tokens_available(0, self.port.id) self.port.queue.commit() assert self.port.tokens_available(0, self.port.id) def test_get_peer(self): assert self.local_in.get_peer() == ('local', self.peer_port.id) assert self.local_out.get_peer() == ('local', self.port.id)