Пример #1
0
def test_Metadata_constructor(dataspace):  # noqa: F811
    my_tm = dataspace.get_taskmanagers()[0]  # fetch one of our loaded examples
    metadata = datablock.Metadata(my_tm["taskmanager_id"])

    assert metadata.data["taskmanager_id"] == my_tm["taskmanager_id"]

    genTime = 1.0
    missCount = 3
    state = "START_BACKUP"

    metadata = datablock.Metadata(
        my_tm["taskmanager_id"],
        state=state,
        generation_id=dataspace.get_last_generation_id(
            my_tm["name"], my_tm["taskmanager_id"]),
        generation_time=genTime,
        missed_update_count=missCount,
    )

    assert metadata.data["taskmanager_id"] == my_tm["taskmanager_id"]
    assert metadata.data["state"] == state
    assert metadata.data["generation_id"] == dataspace.get_last_generation_id(
        my_tm["name"], my_tm["taskmanager_id"])
    assert metadata.data["generation_time"] == genTime
    assert metadata.data["missed_update_count"] == missCount
Пример #2
0
def test_get_last_generation_id_not_exist(dataspace):  # noqa: F811
    """Does it error out if we ask for a bogus taskmanager?"""
    with pytest.raises((KeyError, NoResultFound)):
        dataspace.get_last_generation_id(taskmanager_name="no_such_task_manager")
    with pytest.raises((KeyError, NoResultFound)):
        dataspace.get_last_generation_id(
            taskmanager_name="no_such_task_manager",
            taskmanager_id="11111111-1111-1111-1111-111111111111",
        )
Пример #3
0
def test_get_last_generation_id(dataspace):  # noqa: F811
    """Can we get the last generation id by name or name and uuid"""
    result1 = dataspace.get_last_generation_id(taskmanager_name="taskmanager1")
    assert result1 == 1
    result1 = dataspace.get_last_generation_id(
        taskmanager_name="taskmanager1",
        taskmanager_id="11111111-1111-1111-1111-111111111111",
    )
    assert result1 == 1

    result2 = dataspace.get_last_generation_id(
        taskmanager_name="taskmanager2",
        taskmanager_id="22222222-2222-2222-2222-222222222222",
    )
    assert result2 == 2
Пример #4
0
def test_DataBlock_to_str(dataspace):  # noqa: F811
    my_tm = dataspace.get_taskmanagers()[0]  # fetch one of our loaded examples

    expected = {
        "taskmanager_id":
        my_tm["taskmanager_id"],
        "generation_id":
        dataspace.get_last_generation_id(my_tm["name"],
                                         my_tm["taskmanager_id"]),
        "sequence_id":
        len(dataspace.get_dataproducts(my_tm["sequence_id"])) + 1,
        "keys": [
            "example_test_key",
        ],
        "dataproducts": {
            "example_test_key": "example_test_value"
        },
    }

    header = datablock.Header(my_tm["taskmanager_id"])

    dblock = datablock.DataBlock(dataspace, my_tm["name"],
                                 my_tm["taskmanager_id"])
    dblock.put("example_test_key", "example_test_value", header)

    result = ast.literal_eval(str(dblock))
    assert result == expected
Пример #5
0
def test_DataBlock_key_management(dataspace):  # noqa: F811
    my_tm = dataspace.get_taskmanagers()[0]  # fetch one of our loaded examples
    header = datablock.Header(my_tm["taskmanager_id"])
    metadata = datablock.Metadata(
        my_tm["taskmanager_id"],
        generation_id=dataspace.get_last_generation_id(
            my_tm["name"], my_tm["taskmanager_id"]),
    )
    dblock = datablock.DataBlock(dataspace, my_tm["name"],
                                 my_tm["taskmanager_id"])

    # test with automatic metadata and string value
    dblock.put("example_test_key", "example_test_value", header)

    assert "example_test_key" in dblock.keys()
    assert "example_test_key" in dblock

    assert dblock.get("example_test_key") == "example_test_value"

    # Test product-retriever interface
    retriever = datablock.ProductRetriever("example_test_key", None, None)
    assert retriever(dblock) == "example_test_value"
    assert (
        str(retriever) ==
        "Product retriever for {'name': 'example_test_key', 'type': None, 'creator': None}"
    )

    # test new key with manual metadata and dict value
    newDict = {"subKey": "newValue"}
    dblock.put("new_example_test_key", newDict, header, metadata)
    assert dblock["new_example_test_key"] == newDict
Пример #6
0
def test_duplicate_datablock(dataspace):  # noqa: F811
    """Can we duplicate taskmanager1 and all its entries"""
    result1 = dataspace.get_last_generation_id(
        taskmanager_name="taskmanager1",
        taskmanager_id="11111111-1111-1111-1111-111111111111",
    )
    assert result1 == 1

    result1 = dataspace.get_dataproducts(taskmanager_id=1, )
    assert len(result1) == 2

    dataspace.duplicate_datablock(1, 1, 90)

    result1 = dataspace.get_last_generation_id(
        taskmanager_name="taskmanager1",
        taskmanager_id="11111111-1111-1111-1111-111111111111",
    )
    assert result1 == 90
Пример #7
0
def test_DataBlock_get_metadata(dataspace):  # noqa: F811
    my_tm = dataspace.get_taskmanagers()[0]  # fetch one of our loaded examples
    header = datablock.Header(my_tm["taskmanager_id"])
    metadata = datablock.Metadata(
        my_tm["taskmanager_id"],
        generation_id=dataspace.get_last_generation_id(
            my_tm["name"], my_tm["taskmanager_id"]),
    )
    dblock = datablock.DataBlock(dataspace, my_tm["name"],
                                 my_tm["taskmanager_id"])

    dblock.put("example_test_key", "example_test_value", header, metadata)

    assert metadata == dblock.get_metadata("example_test_key")