コード例 #1
0
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)
コード例 #2
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
コード例 #3
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 == Endpoint.void()
    assert inport.is_connected_to(outport.id)
    assert inport.is_connected_to(first_outport.id)
    assert inport.owner.did_connect.called
コード例 #4
0
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)
コード例 #5
0
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
コード例 #6
0
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)
コード例 #7
0
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
コード例 #8
0
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
コード例 #9
0
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
コード例 #10
0
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
コード例 #11
0
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
コード例 #12
0
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)