Ejemplo n.º 1
0
def test_api_compliance(discovery_blockchain, local):
    contract_discovery_instance, address = discovery_blockchain
    if local:
        contract_discovery_instance = Discovery()
        assert isinstance(contract_discovery_instance, Discovery)
    else:
        assert isinstance(contract_discovery_instance, ContractDiscovery)

    # test that `get` for unknown address raises KeyError
    with pytest.raises(KeyError):
        assert contract_discovery_instance.get(
            ('01' * 20).decode('hex')) is None

    assert contract_discovery_instance.nodeid_by_host_port(
        ('127.0.0.1', 44444)) is None

    # test, that `update_endpoint` and 'classic' `register` do the same
    contract_discovery_instance.register(address, '127.0.0.1', 44444)
    not local and gevent.sleep(30)
    assert contract_discovery_instance.nodeid_by_host_port(
        ('127.0.0.1', 44444)) == address

    # test, that `register`ing twice does update do the same
    contract_discovery_instance.register(address, '127.0.0.1', 88888)
    not local and gevent.sleep(30)
    assert contract_discovery_instance.nodeid_by_host_port(
        ('127.0.0.1', 88888)) == address
Ejemplo n.º 2
0
def test_mock_registry_api_compliance():
    address = make_address()
    contract_discovery_instance = Discovery()

    # `get` for unknown address raises
    with pytest.raises(KeyError):
        contract_discovery_instance.get(address)

    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 44444)) is None

    # `update_endpoint` and 'classic' `register` do the same
    contract_discovery_instance.register(address, '127.0.0.1', 44444)
    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 44444)) == address
    assert contract_discovery_instance.get(address) == ('127.0.0.1', 44444)

    # `register`ing twice does update do the same
    contract_discovery_instance.register(address, '127.0.0.1', 88888)
    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 88888)) == address
    assert contract_discovery_instance.get(address) == ('127.0.0.1', 88888)
Ejemplo n.º 3
0
def test_mock_registry_api_compliance():
    address = make_address()
    contract_discovery_instance = Discovery()

    # `get` for unknown address raises
    with pytest.raises(InvalidAddress):
        contract_discovery_instance.get(address)

    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 44444)) is None

    # `update_endpoint` and 'classic' `register` do the same
    contract_discovery_instance.register(address, '127.0.0.1', 44444)
    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 44444)) == address
    assert contract_discovery_instance.get(address) == ('127.0.0.1', 44444)

    # `register`ing twice does update do the same
    contract_discovery_instance.register(address, '127.0.0.1', 88888)
    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 88888)) == address
    assert contract_discovery_instance.get(address) == ('127.0.0.1', 88888)
Ejemplo n.º 4
0
def test_api_compliance(discovery_blockchain, local):
    contract_discovery_instance, address = discovery_blockchain
    if local:
        contract_discovery_instance = Discovery()
        assert isinstance(contract_discovery_instance, Discovery)
    else:
        assert isinstance(contract_discovery_instance, ContractDiscovery)

    # test that `get` for unknown address raises KeyError
    with pytest.raises(KeyError):
        assert contract_discovery_instance.get(('01' * 20).decode('hex')) is None

    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 44444)) is None

    # test, that `update_endpoint` and 'classic' `register` do the same
    contract_discovery_instance.register(address, '127.0.0.1', 44444)
    not local and gevent.sleep(30)
    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 44444)) == address
    assert contract_discovery_instance.get(address) == ('127.0.0.1', 44444)
    # test, that `register`ing twice does update do the same
    contract_discovery_instance.register(address, '127.0.0.1', 88888)
    not local and gevent.sleep(30)
    assert contract_discovery_instance.nodeid_by_host_port(('127.0.0.1', 88888)) == address
    assert contract_discovery_instance.get(address) == ('127.0.0.1', 88888)