def test_parent_dataset_links(some_interdeps): """ Test that we can set links and retrieve them when loading the dataset """ links = generate_some_links(3) ds = DataSet() for link in links: link.head = ds.guid ds.set_interdependencies(some_interdeps[1]) ds.parent_dataset_links = links[:2] # setting it again/overwriting it should be okay ds.parent_dataset_links = links ds.mark_started() match = re.escape('Can not set parent dataset links on a dataset ' 'that has been started.') with pytest.raises(RuntimeError, match=match): ds.parent_dataset_links = links ds.add_results([{'ps1': 1, 'ps2': 2}]) run_id = ds.run_id ds_loaded = DataSet(run_id=run_id) assert ds_loaded.parent_dataset_links == links
def test_parent_dataset_links_invalid_input(): """ Test that invalid input is rejected """ links = generate_some_links(3) ds = DataSet() match = re.escape('Invalid input. Did not receive a list of Links') with pytest.raises(ValueError, match=match): ds.parent_dataset_links = [ds.guid] match = re.escape('Invalid input. All links must point to this dataset. ' 'Got link(s) with head(s) pointing to another dataset.') with pytest.raises(ValueError, match=match): ds.parent_dataset_links = links