Esempio n. 1
0
def test_test_suites_prop(test_data_dir):
    top_dir = test_data_dir / "ro-crate-galaxy-sortchangecase"
    wf_path = top_dir / "sort-and-change-case.ga"
    crate = ROCrate()
    wf = crate.add(ComputationalWorkflow(crate, str(wf_path), wf_path.name))
    crate.mainEntity = wf
    suites = set()
    assert not crate.test_suites
    s1 = crate.add(TestSuite(crate, "s1"))
    suites.add(s1)
    crate.root_dataset["mentions"] = [s1]
    assert suites == set(crate.test_suites)
    s2 = crate.add(TestSuite(crate, "s2"))
    crate.root_dataset["about"] = [s2]
    suites.add(s2)
    assert suites == set(crate.test_suites)
    test_dir = crate.add_directory(dest_path="test")
    assert crate.test_dir is test_dir
    assert suites == set(crate.test_suites)  # no "about" yet
    s3 = crate.add(TestSuite(crate, "s3"))
    suites.add(s3)
    test_dir["about"] = [s3]
    assert suites == set(crate.test_suites)
    # check for duplicates
    crate.root_dataset["about"] = [s1, s2]
    assert sum(_ is s1 for _ in crate.test_suites) == 1
Esempio n. 2
0
def test_add_test_suite(test_data_dir):
    top_dir = test_data_dir / "ro-crate-galaxy-sortchangecase"
    wf_path = top_dir / "sort-and-change-case.ga"
    crate = ROCrate()
    wf = crate.add(ComputationalWorkflow(crate, str(wf_path), wf_path.name))
    crate.mainEntity = wf
    suites = set()
    assert not crate.test_suites
    s1 = crate.add_test_suite()
    assert s1["mainEntity"] is wf
    suites.add(s1)
    assert suites == set(crate.test_suites)
    s2 = crate.add_test_suite(identifier="test1")
    assert s2["mainEntity"] is wf
    assert s2.id == "#test1"
    suites.add(s2)
    assert suites == set(crate.test_suites)
    s3 = crate.add_test_suite(identifier="test2", name="Test 2")
    assert s3["mainEntity"] is wf
    assert s3.id == "#test2"
    assert s3.name == "Test 2"
    suites.add(s3)
    assert suites == set(crate.test_suites)
    wf2_path = top_dir / "README.md"
    wf2 = crate.add(ComputationalWorkflow(crate, wf2_path, wf2_path.name))
    s4 = crate.add_test_suite(identifier="test3", name="Foo", main_entity=wf2)
    assert s4["mainEntity"] is wf2
    assert s4.id == "#test3"
    assert s4.name == "Foo"
    suites.add(s4)
    assert suites == set(crate.test_suites)
    # check filtering in test_suites property
    crate.root_dataset["mentions"] += [wf]
    assert set(crate.root_dataset["mentions"]) > suites
    assert suites == set(crate.test_suites)
Esempio n. 3
0
def test_add_test_instance(test_data_dir):
    top_dir = test_data_dir / "ro-crate-galaxy-sortchangecase"
    wf_path = top_dir / "sort-and-change-case.ga"
    crate = ROCrate()
    wf = crate.add(ComputationalWorkflow(crate, str(wf_path), wf_path.name))
    crate.mainEntity = wf
    suite = crate.add_test_suite()
    instances = set()
    assert crate.dereference(JENKINS) is None
    assert crate.dereference(TRAVIS) is None
    i1 = crate.add_test_instance(suite, "http://example.com")
    assert crate.dereference(JENKINS) is i1.service
    assert crate.dereference(TRAVIS) is None
    assert i1.url == "http://example.com"
    instances.add(i1)
    assert instances == set(suite.instance)
    i2 = crate.add_test_instance(suite.id, "http://example.com")
    assert i2.url == "http://example.com"
    instances.add(i2)
    assert instances == set(suite.instance)
    i3 = crate.add_test_instance(suite, "http://example.com", resource="jobs")
    assert i3.url == "http://example.com"
    assert i3.resource == "jobs"
    instances.add(i3)
    assert instances == set(suite.instance)
    i4 = crate.add_test_instance(suite, "http://example.com", service="travis")
    assert i4.url == "http://example.com"
    assert i4.service.id == TRAVIS
    assert i4.service is crate.dereference(TRAVIS)
    instances.add(i4)
    assert instances == set(suite.instance)
    i5 = crate.add_test_instance(suite,
                                 "http://example.com",
                                 identifier="test_1_1")
    assert i5.url == "http://example.com"
    assert i5.id == "#test_1_1"
    instances.add(i5)
    assert instances == set(suite.instance)
    i6 = crate.add_test_instance(suite,
                                 "http://example.com",
                                 name="Test 1 Instance 1")
    assert i6.url == "http://example.com"
    assert i6.name == "Test 1 Instance 1"
    instances.add(i6)
    assert instances == set(suite.instance)
Esempio n. 4
0
def test_add_test_definition(test_data_dir, engine, engine_version):
    top_dir = test_data_dir / "ro-crate-galaxy-sortchangecase"
    wf_path = top_dir / "sort-and-change-case.ga"
    def_path = top_dir / "test" / "test1" / "sort-and-change-case-test.yml"
    crate = ROCrate()
    wf = crate.add(ComputationalWorkflow(crate, str(wf_path), wf_path.name))
    crate.mainEntity = wf
    suite = crate.add_test_suite()
    assert crate.dereference(PLANEMO) is None
    kwargs = {"source": def_path}
    if engine:
        kwargs["engine"] = engine
    if engine_version:
        kwargs["engine_version"] = engine_version
    d = crate.add_test_definition(suite, **kwargs)
    assert crate.dereference(PLANEMO) is d.engine
    if engine_version:
        assert d.engineVersion == engine_version