def test_inport_outport_connection(inport, outport): out_endpoint = LocalOutEndpoint(outport, inport) out_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing in_endpoint = LocalInEndpoint(inport, outport) in_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing outport.set_queue( queue.fanout_fifo.FanoutFIFO({ 'queue_length': 4, 'direction': "out" }, {})) outport.attach_endpoint(out_endpoint) inport.set_queue( queue.fanout_fifo.FanoutFIFO({ 'queue_length': 4, 'direction': "in" }, {})) inport.attach_endpoint(in_endpoint) assert outport.tokens_available(1) assert outport.tokens_available(4) outport.write_token(1) assert outport.tokens_available(3) for e in outport.endpoints: e.communicate() assert inport.tokens_available(1) assert inport.peek_token() == 1 inport.peek_cancel() assert inport.peek_token() == 1 assert inport.tokens_available(0)
def test_attach_endpoint_to_inport(inport, outport): inport.owner.did_connect = Mock() first_outport = OutPort("out", actor()) first_endpoint = LocalInEndpoint(inport, first_outport) first_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing endpoint = LocalInEndpoint(inport, outport) endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing inport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "in"}, {})) inport.attach_endpoint(first_endpoint) assert inport.is_connected_to(first_outport.id) prev_endpoint = inport.attach_endpoint(endpoint) assert prev_endpoint == None assert inport.is_connected_to(outport.id) assert inport.is_connected_to(first_outport.id) assert inport.owner.did_connect.called
def test_attach_endpoint_to_inport(inport, outport): inport.owner.did_connect = Mock() first_outport = OutPort("out", actor()) first_endpoint = LocalInEndpoint(inport, first_outport) first_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing endpoint = LocalInEndpoint(inport, outport) endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing inport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "in"}, {})) inport.attach_endpoint(first_endpoint) assert inport.is_connected_to(first_outport.id) prev_endpoint = inport.attach_endpoint(endpoint) assert prev_endpoint == Endpoint.void() assert inport.is_connected_to(outport.id) assert inport.is_connected_to(first_outport.id) assert inport.owner.did_connect.called
def test_detach_endpoint_from_inport(inport, outport): endpoint = LocalInEndpoint(inport, outport) endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing inport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "in"}, {})) inport.attach_endpoint(endpoint) assert inport.is_connected_to(outport.id) inport.detach_endpoint(endpoint) assert not inport.is_connected_to(outport.id)
def test_disconnect_inport(inport, outport): inport.owner.did_disconnect = Mock() endpoint = LocalInEndpoint(inport, outport) endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing inport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "in"}, {})) inport.attach_endpoint(endpoint) assert inport.disconnect() == [endpoint] assert inport.owner.did_disconnect.called
def test_set_inport_state(inport, outport): out_endpoint = LocalOutEndpoint(outport, inport) out_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing in_endpoint = LocalInEndpoint(inport, outport) in_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing outport.set_queue( queue.fanout_fifo.FanoutFIFO({ 'queue_length': 4, 'direction': "out" }, {})) outport.attach_endpoint(out_endpoint) inport.set_queue( queue.fanout_fifo.FanoutFIFO({ 'queue_length': 4, 'direction': "in" }, {})) inport.attach_endpoint(in_endpoint) new_state = { 'name': 'new_name', 'id': inport.id, 'queue': { 'fifo': [{ 'data': n } for n in range(5)], 'N': 5, 'readers': [in_endpoint.port.id], 'write_pos': 5, 'read_pos': { in_endpoint.port.id: 4 }, 'tentative_read_pos': { in_endpoint.port.id: 2 } } } inport._set_state(new_state) assert inport.name == 'new_name' assert inport.tokens_available(3) assert inport.peek_token().value == 2 assert inport.peek_token().value == 3 assert inport.peek_token().value == 4 try: assert inport.peek_token() assert False except queue.common.QueueEmpty: assert True except: assert False
def test_set_outport_state(inport, outport): new_state = { 'properties': { 'routing': 'fanout', 'nbr_peers': 2 }, 'name': 'new_name', 'id': '123', 'queue': { 'fifo': [{ 'value': 1 } for n in range(5)], 'N': 5, 'readers': ['123'], 'write_pos': 3, 'read_pos': { '123': 2 }, 'tentative_read_pos': { '123': 0 }, 'queuetype': 'fifo' } } out_endpoint = LocalOutEndpoint(outport, inport) out_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing in_endpoint = LocalInEndpoint(inport, outport) in_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing inport.set_queue( queue.fanout_fifo.FanoutFIFO({ 'queue_length': 4, 'direction': "in" }, {})) inport.attach_endpoint(in_endpoint) outport.set_queue( queue.fanout_fifo.FanoutFIFO({ 'queue_length': 4, 'direction': "out" }, {})) outport.attach_endpoint(out_endpoint) outport._set_state(new_state) assert outport.name == 'new_name' assert outport.id == '123' assert outport.properties['nbr_peers'] == 2 assert outport.tokens_available(1) assert outport.tokens_available(3) outport.write_token(10) assert outport.queue.fifo[3] == 10
def test_set_inport_state(inport, outport): out_endpoint = LocalOutEndpoint(outport, inport) out_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing in_endpoint = LocalInEndpoint(inport, outport) in_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing outport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "out"}, {})) outport.attach_endpoint(out_endpoint) inport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "in"}, {})) inport.attach_endpoint(in_endpoint) new_state = { 'name': 'new_name', 'id': inport.id, 'queue': { 'fifo': [{'data': n} for n in range(5)], 'N': 5, 'readers': [in_endpoint.port.id], 'write_pos': 5, 'read_pos': {in_endpoint.port.id: 4}, 'tentative_read_pos': {in_endpoint.port.id: 2} } } inport._set_state(new_state) assert inport.name == 'new_name' assert inport.tokens_available(3) assert inport.peek_token().value == 2 assert inport.peek_token().value == 3 assert inport.peek_token().value == 4 try: assert inport.peek_token() assert False except queue.common.QueueEmpty: assert True except: assert False
def test_set_outport_state(inport, outport): new_state = { 'properties': { 'routing': 'fanout', 'nbr_peers': 2 }, 'name': 'new_name', 'id': '123', 'queue': { 'fifo': [{'value': 1} for n in range(5)], 'N': 5, 'readers': ['123'], 'write_pos': 3, 'read_pos': {'123': 2}, 'tentative_read_pos': {'123': 0}, 'queuetype': 'fifo' } } out_endpoint = LocalOutEndpoint(outport, inport) out_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing in_endpoint = LocalInEndpoint(inport, outport) in_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing inport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "in"}, {})) inport.attach_endpoint(in_endpoint) outport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "out"}, {})) outport.attach_endpoint(out_endpoint) outport._set_state(new_state) assert outport.name == 'new_name' assert outport.id == '123' assert outport.properties['nbr_peers'] == 2 assert outport.tokens_available(1) assert outport.tokens_available(3) outport.write_token(10) assert outport.queue.fifo[3] == 10
def test_inport_outport_connection(inport, outport): out_endpoint = LocalOutEndpoint(outport, inport) out_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing in_endpoint = LocalInEndpoint(inport, outport) in_endpoint._fifo_mismatch_fix = Mock() # Skip fifo mismatch fixing outport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "out"}, {})) outport.attach_endpoint(out_endpoint) inport.set_queue(queue.fanout_fifo.FanoutFIFO({'queue_length': 4, 'direction': "in"}, {})) inport.attach_endpoint(in_endpoint) assert outport.tokens_available(1) assert outport.tokens_available(4) outport.write_token(1) assert outport.tokens_available(3) for e in outport.endpoints: e.communicate() assert inport.tokens_available(1) assert inport.peek_token() == 1 inport.peek_cancel() assert inport.peek_token() == 1 assert inport.tokens_available(0)