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
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", )
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
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
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
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
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")