示例#1
0
def test_observer_metadata(two_nodes):
    nA, nB = two_nodes
    obs = Observer()

    try:
        nB.transport.join_event() # Necesarry, but not user friendly
        uri = 'test://test_isac_value/test_observer_metadata/test_observer'
        ivA = IsacValue(nA, uri, survey_last_value=False, survey_static_tags=False)
        ivB = IsacValue(nB, uri, survey_last_value=False, survey_static_tags=False)
        ivB.metadata_observers += obs.observer
        ivA.metadata = {'this': 'is', 'meta': 'data'}

        for i in range(10):
            green.sleep(0.5)
            if obs.args is not None:
                break

        assert obs.args, 'Callback not received'
        iv_recv, metadata, source_peer = obs.args
        assert iv_recv == ivB
        assert metadata == ivA.metadata
        assert source_peer['peer_name'] == nA.name
        assert source_peer['peer_uuid'] == str(nA.transport.uuid())

    finally:
        nB.transport.leave_event()
示例#2
0
def test_observer_metadata(two_nodes):  # noqa: F811
    nA, nB = two_nodes
    obs = Observer()

    try:
        nB.transport.join_event()  # Necesarry, but not user friendly
        uri = 'test://test_isac_value/test_observer_metadata/test_observer'
        ivA = IsacValue(nA,
                        uri,
                        survey_last_value=False,
                        survey_static_tags=False)
        ivB = IsacValue(nB,
                        uri,
                        survey_last_value=False,
                        survey_static_tags=False)
        ivB.metadata_observers += obs.observer
        green.sleep(0.25)
        ivA.metadata = {'this': 'is', 'meta': 'data'}

        for i in range(10):
            green.sleep(0.5)
            if obs.args is not None:
                break

        assert obs.args, 'Callback not received'
        iv_recv, metadata, source_peer = obs.args
        assert iv_recv == ivB
        assert metadata == ivA.metadata
        assert source_peer['peer_name'] == nA.name
        assert source_peer['peer_uuid'] == str(nA.transport.uuid())

    finally:
        nB.transport.leave_event()
def test_update_metadata(config, root_client, clean_db, one_node):
    iv = IsacValue(one_node, 'test://test_update/test_update_metadata/test', survey_last_value=False, survey_static_tags=False)

    try:
        archiver = arch.InfluxDBArchiver(config)

        iv.metadata = {'meta': 'data'}
        green.sleep(0.25)
        stored_values = read_data(config, root_client, 'SELECT * FROM /.*/ GROUP BY authority, path ORDER BY time DESC LIMIT 1')
        for uri, points in stored_values.items():
            uri = uri.replace('metadata', points[0]['scheme'], 1)
            assert uri == iv.uri
            assert points[0]['meta'] == iv.metadata['meta']

    finally:
        archiver.shutdown()
示例#4
0
def test_property_metadata(two_nodes):
    nA, nB = two_nodes

    uri = 'test://test_isac_value/test_property_metadata/test_property_metadata'
    ivA = IsacValue(nA, uri, survey_last_value=False, survey_static_tags=False)
    ivB = IsacValue(nB, uri, survey_static_tags=False)
    assert ivA.metadata is None
    assert ivB.metadata is None

    metadata = {'this': 'is', 'meta': 'data'}
    ivA.metadata = metadata
    assert ivA.metadata == metadata
    assert ivB.metadata is None

    ivB.survey_metadata()
    assert ivB.metadata == metadata
示例#5
0
def test_property_metadata(two_nodes):  # noqa: F811
    nA, nB = two_nodes

    uri = 'test://test_isac_value/test_property_metadata/test_property_metadata'
    ivA = IsacValue(nA, uri, survey_last_value=False, survey_static_tags=False)
    ivB = IsacValue(nB, uri, survey_static_tags=False)
    assert ivA.metadata is None
    assert ivB.metadata is None

    metadata = {'this': 'is', 'meta': 'data'}
    ivA.metadata = metadata
    assert ivA.metadata == metadata
    assert ivB.metadata is None

    ivB.survey_metadata()
    assert ivB.metadata == metadata