From 7eea5e99222166731c7e55a95f6c00928289b4b9 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Sat, 7 Nov 2020 08:48:38 +0000 Subject: Added failing unit test: No matching triples found for predicate cc:License --- test/test_shex.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 test/test_shex.py (limited to 'test/test_shex.py') diff --git a/test/test_shex.py b/test/test_shex.py new file mode 100644 index 0000000..ead2396 --- /dev/null +++ b/test/test_shex.py @@ -0,0 +1,35 @@ +import schema_salad.schema +import schema_salad.ref_resolver +import schema_salad.jsonld_context +import pkg_resources +import logging +import traceback +# from rdflib import Graph, Namespace +from pyshex.evaluate import evaluate +import unittest + +class TestStringMethods(unittest.TestCase): + + def test_schema(self): + with open("bh20sequploader/bh20seq-schema.yml") as schema_resource: + metadata_schema = schema_salad.schema.load_schema("https://raw.githubusercontent.com/arvados/bh20-seq-resource/master/bh20sequploader/bh20seq-schema.yml") + (document_loader, + avsc_names, + schema_metadata, + metaschema_loader) = metadata_schema + print(metadata_schema) + assert(isinstance(avsc_names, schema_salad.avro.schema.Names)) + metadatafile = "test/data/input/TN_UT2.yaml" + doc, metadata = schema_salad.schema.load_and_validate(document_loader, avsc_names, metadatafile, True) + print(doc) + g = schema_salad.jsonld_context.makerdf("workflow", doc, document_loader.ctx) + shex = pkg_resources.resource_stream(__name__, "../bh20sequploader/bh20seq-shex.rdf").read().decode("utf-8") + rslt, reason = evaluate(g, shex, doc["id"], "https://raw.githubusercontent.com/arvados/bh20-seq-resource/master/bh20sequploader/bh20seq-shex.rdf#submissionShape") + + g.serialize(format="ntriples") + + if not rslt: + raise Exception(reason) + +if __name__ == '__main__': + unittest.main() -- cgit v1.2.3 From 8aae577137f7614dc0889d0527cc25d6d078b68e Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Sat, 7 Nov 2020 08:50:25 +0000 Subject: Running tests without network --- .guix-test | 2 +- test/test_shex.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'test/test_shex.py') diff --git a/.guix-test b/.guix-test index b7b9ab3..362fe8b 100644 --- a/.guix-test +++ b/.guix-test @@ -8,4 +8,4 @@ export GUILE_LOAD_COMPILED_PATH=$GUIX_PROFILE/share/guile/site/3.0/ ls $GUILE_LOAD_PATH -env GUIX_PACKAGE_PATH=~/iwrk/opensource/guix/guix-bioinformatics/ $GUIX_PROFILE/bin/guix environment -C guix --ad-hoc git python python-flask python-pyyaml python-pycurl python-magic nss-certs python-pyshex python-pyyaml --network openssl python-pyshex python-pyshexc minimap2 python-schema-salad python-arvados-python-client -- python3 test/test_shex.py +env GUIX_PACKAGE_PATH=~/iwrk/opensource/guix/guix-bioinformatics/ $GUIX_PROFILE/bin/guix environment -C guix --ad-hoc git python python-flask python-pyyaml python-pycurl python-magic nss-certs python-pyshex python-pyyaml openssl python-pyshex python-pyshexc minimap2 python-schema-salad python-arvados-python-client -- python3 test/test_shex.py diff --git a/test/test_shex.py b/test/test_shex.py index ead2396..e094184 100644 --- a/test/test_shex.py +++ b/test/test_shex.py @@ -12,7 +12,7 @@ class TestStringMethods(unittest.TestCase): def test_schema(self): with open("bh20sequploader/bh20seq-schema.yml") as schema_resource: - metadata_schema = schema_salad.schema.load_schema("https://raw.githubusercontent.com/arvados/bh20-seq-resource/master/bh20sequploader/bh20seq-schema.yml") + metadata_schema = schema_salad.schema.load_schema("bh20sequploader/bh20seq-schema.yml") (document_loader, avsc_names, schema_metadata, -- cgit v1.2.3 From 0a2d9ef27d6c1b768873252287c6d967cf912025 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Sat, 7 Nov 2020 09:04:03 +0000 Subject: Fixed the License error (https!!) --- bh20sequploader/bh20seq-shex.rdf | 2 +- test/test_shex.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'test/test_shex.py') diff --git a/bh20sequploader/bh20seq-shex.rdf b/bh20sequploader/bh20seq-shex.rdf index 89ecd00..fa765dd 100644 --- a/bh20sequploader/bh20seq-shex.rdf +++ b/bh20sequploader/bh20seq-shex.rdf @@ -1,7 +1,7 @@ PREFIX : PREFIX MainSchema: PREFIX hostSchema: -PREFIX cc: +PREFIX cc: PREFIX dc: PREFIX xsd: PREFIX obo: diff --git a/test/test_shex.py b/test/test_shex.py index e094184..50ce723 100644 --- a/test/test_shex.py +++ b/test/test_shex.py @@ -24,6 +24,7 @@ class TestStringMethods(unittest.TestCase): print(doc) g = schema_salad.jsonld_context.makerdf("workflow", doc, document_loader.ctx) shex = pkg_resources.resource_stream(__name__, "../bh20sequploader/bh20seq-shex.rdf").read().decode("utf-8") + # Note the https link simply acts as a URI descriptor (it does not fetch) rslt, reason = evaluate(g, shex, doc["id"], "https://raw.githubusercontent.com/arvados/bh20-seq-resource/master/bh20sequploader/bh20seq-shex.rdf#submissionShape") g.serialize(format="ntriples") -- cgit v1.2.3 From 9887e427d4e0beb29af14e554a3508126f0d505a Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Sat, 7 Nov 2020 09:24:17 +0000 Subject: Test: simplify and add regression test --- test/data/regression/TN_UT2.rdf | 33 +++++++++++++++++++++++++++++++++ test/test_shex.py | 14 ++++++++------ 2 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 test/data/regression/TN_UT2.rdf (limited to 'test/test_shex.py') diff --git a/test/data/regression/TN_UT2.rdf b/test/data/regression/TN_UT2.rdf new file mode 100644 index 0000000..aa1356a --- /dev/null +++ b/test/data/regression/TN_UT2.rdf @@ -0,0 +1,33 @@ +_:Nc519408f538a4bb39ea09f56ce9bb88e "TN_UT2" . +_:N299826fb66794f11991cebc5f8d8b24a "https://bio.tools/BWA#!" . +_:N982774a13a39474aae39272447a09574 "https://www.uthsc.edu/medicine/molecular-sciences/faculty-directory/jonsson.php" . +_:N7857c4718ab741169bae9fafa9b47c75 "2020-04-26" . +_:N708d19e87323455c9f9bb317538f742d "Pjotr Prins" . +_:N95d4a000e14d4bd99b46d6ec84989aaf "SARS-CoV-2/human/USA/TN_UT2/2020" . + _:N982774a13a39474aae39272447a09574 . +_:N95d4a000e14d4bd99b46d6ec84989aaf . +_:Nc519408f538a4bb39ea09f56ce9bb88e . +_:N708d19e87323455c9f9bb317538f742d "Colleen Jonsson" . +_:N982774a13a39474aae39272447a09574 "Mariah Taylor, Colleen Jonsson" . + _:N7857c4718ab741169bae9fafa9b47c75 . +_:N708d19e87323455c9f9bb317538f742d "Regional Biocontainment Laboratory, Memphis, TN" . +_:N299826fb66794f11991cebc5f8d8b24a . +_:N708d19e87323455c9f9bb317538f742d "UTHSC, Memphis, Tennessee 38163, USA" . +_:N7857c4718ab741169bae9fafa9b47c75 . +_:N708d19e87323455c9f9bb317538f742d "TN_UT2" . +_:N7857c4718ab741169bae9fafa9b47c75 "TN_UT2" . +_:N708d19e87323455c9f9bb317538f742d . + _:N708d19e87323455c9f9bb317538f742d . + _:N299826fb66794f11991cebc5f8d8b24a . +_:N982774a13a39474aae39272447a09574 "TN_UT2 - Pegram, Tennessee, USA" . +_:N299826fb66794f11991cebc5f8d8b24a "Oxford Nanopore MiniIon RNA long reads" . +_:N7857c4718ab741169bae9fafa9b47c75 . + _:Nc519408f538a4bb39ea09f56ce9bb88e . +_:N708d19e87323455c9f9bb317538f742d "Mariah Taylor" . +_:N708d19e87323455c9f9bb317538f742d . + _:N95d4a000e14d4bd99b46d6ec84989aaf . +_:N708d19e87323455c9f9bb317538f742d "Colleen B. Jonsson" . +_:N708d19e87323455c9f9bb317538f742d "TN_UT2" . +_:N982774a13a39474aae39272447a09574 "http://creativecommons.org/licenses/by/4.0/" . +_:N708d19e87323455c9f9bb317538f742d "Mariah Taylor" . + diff --git a/test/test_shex.py b/test/test_shex.py index 50ce723..e5d97cc 100644 --- a/test/test_shex.py +++ b/test/test_shex.py @@ -1,9 +1,9 @@ import schema_salad.schema import schema_salad.ref_resolver import schema_salad.jsonld_context -import pkg_resources +# import pkg_resources import logging -import traceback +# import traceback # from rdflib import Graph, Namespace from pyshex.evaluate import evaluate import unittest @@ -17,17 +17,19 @@ class TestStringMethods(unittest.TestCase): avsc_names, schema_metadata, metaschema_loader) = metadata_schema - print(metadata_schema) - assert(isinstance(avsc_names, schema_salad.avro.schema.Names)) + # print(metadata_schema) + self.assertTrue(isinstance(avsc_names, schema_salad.avro.schema.Names)) metadatafile = "test/data/input/TN_UT2.yaml" doc, metadata = schema_salad.schema.load_and_validate(document_loader, avsc_names, metadatafile, True) print(doc) g = schema_salad.jsonld_context.makerdf("workflow", doc, document_loader.ctx) - shex = pkg_resources.resource_stream(__name__, "../bh20sequploader/bh20seq-shex.rdf").read().decode("utf-8") + with open("bh20sequploader/bh20seq-shex.rdf") as f: + shex = f.read() # Note the https link simply acts as a URI descriptor (it does not fetch) rslt, reason = evaluate(g, shex, doc["id"], "https://raw.githubusercontent.com/arvados/bh20-seq-resource/master/bh20sequploader/bh20seq-shex.rdf#submissionShape") - g.serialize(format="ntriples") + with open("test/data/regression/TN_UT2.rdf","w") as f: + f.write(g.serialize(format="ntriples").decode("utf-8")) if not rslt: raise Exception(reason) -- cgit v1.2.3 From 8a02280c4bd05a7f8df598a75a1ea2d3caaddd7d Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Sat, 7 Nov 2020 10:21:48 +0000 Subject: Tests: add runner and frame for SPARQL --- .guix-test | 2 +- test/data/regression/TN_UT2.rdf | 64 ++++++++++++++++++++--------------------- test/runner.py | 17 +++++++++++ test/test_shex.py | 8 ++---- test/test_sparql.py | 11 +++++++ 5 files changed, 64 insertions(+), 38 deletions(-) create mode 100644 test/runner.py create mode 100644 test/test_sparql.py (limited to 'test/test_shex.py') diff --git a/.guix-test b/.guix-test index 362fe8b..b8e92a0 100644 --- a/.guix-test +++ b/.guix-test @@ -8,4 +8,4 @@ export GUILE_LOAD_COMPILED_PATH=$GUIX_PROFILE/share/guile/site/3.0/ ls $GUILE_LOAD_PATH -env GUIX_PACKAGE_PATH=~/iwrk/opensource/guix/guix-bioinformatics/ $GUIX_PROFILE/bin/guix environment -C guix --ad-hoc git python python-flask python-pyyaml python-pycurl python-magic nss-certs python-pyshex python-pyyaml openssl python-pyshex python-pyshexc minimap2 python-schema-salad python-arvados-python-client -- python3 test/test_shex.py +env GUIX_PACKAGE_PATH=~/iwrk/opensource/guix/guix-bioinformatics/ $GUIX_PROFILE/bin/guix environment -C guix --ad-hoc git python python-flask python-pyyaml python-pycurl python-magic nss-certs python-pyshex python-pyyaml openssl python-pyshex python-pyshexc minimap2 python-schema-salad python-arvados-python-client -- python3 test/runner.py diff --git a/test/data/regression/TN_UT2.rdf b/test/data/regression/TN_UT2.rdf index 84353a5..28b7a2d 100644 --- a/test/data/regression/TN_UT2.rdf +++ b/test/data/regression/TN_UT2.rdf @@ -1,33 +1,33 @@ -_:N850430bbc537473e8fbab09c300daf2b . -_:Ncab40e8bd4b84431aa6782f7e7480ef3 . -_:N3c28bc8014134d77823451de114c6085 "Mariah Taylor" . -_:Ncab40e8bd4b84431aa6782f7e7480ef3 "TN_UT2" . - _:N850430bbc537473e8fbab09c300daf2b . -_:N3c28bc8014134d77823451de114c6085 "TN_UT2" . -_:N850430bbc537473e8fbab09c300daf2b . -_:N3c28bc8014134d77823451de114c6085 "UTHSC, Memphis, Tennessee 38163, USA" . -_:Nebe62f68542a47d0936e953195cf25d7 . -_:N3c28bc8014134d77823451de114c6085 "Colleen B. Jonsson" . -_:N78bfdbe9d12745e99164d619cb125277 . -_:Nbf9e7b47381b4965926a47bf5b34e489 "Oxford Nanopore MiniIon RNA long reads" . - _:Ncab40e8bd4b84431aa6782f7e7480ef3 . -_:Nbf9e7b47381b4965926a47bf5b34e489 "https://bio.tools/BWA#!" . -_:Nebe62f68542a47d0936e953195cf25d7 "TN_UT2" . - _:Nebe62f68542a47d0936e953195cf25d7 . -_:N850430bbc537473e8fbab09c300daf2b "Mariah Taylor, Colleen Jonsson" . -_:N78bfdbe9d12745e99164d619cb125277 "SARS-CoV-2/human/USA/TN_UT2/2020" . -_:N3c28bc8014134d77823451de114c6085 "Colleen Jonsson" . -_:N3c28bc8014134d77823451de114c6085 . -_:Nebe62f68542a47d0936e953195cf25d7 "2020-04-26" . -_:Nebe62f68542a47d0936e953195cf25d7 . -_:N850430bbc537473e8fbab09c300daf2b "TN_UT2 - Pegram, Tennessee, USA" . -_:Nbf9e7b47381b4965926a47bf5b34e489 . -_:N3c28bc8014134d77823451de114c6085 "Mariah Taylor" . -_:N3c28bc8014134d77823451de114c6085 "TN_UT2" . -_:N3c28bc8014134d77823451de114c6085 "Pjotr Prins" . - _:N3c28bc8014134d77823451de114c6085 . -_:N3c28bc8014134d77823451de114c6085 . - _:N78bfdbe9d12745e99164d619cb125277 . -_:N3c28bc8014134d77823451de114c6085 "Regional Biocontainment Laboratory, Memphis, TN" . - _:Nbf9e7b47381b4965926a47bf5b34e489 . +_:N76e90938195c463c9dd2af9dadcf3d56 . +_:N14a259ceba1446a389be1076f7090540 . + _:N14a259ceba1446a389be1076f7090540 . + _:N1421ab28904c425faf6c308f77800e08 . +_:N76e90938195c463c9dd2af9dadcf3d56 "Colleen Jonsson" . + _:Na3153e61734c4cd1b7c4a11bb64b76cc . +_:N1421ab28904c425faf6c308f77800e08 . +_:N17d644aee0054862ab8beb6cdf5cb4d6 "https://bio.tools/BWA#!" . +_:N76e90938195c463c9dd2af9dadcf3d56 "TN_UT2" . +_:N69368ab7984c4659bcfa493bdca2d5f1 "SARS-CoV-2/human/USA/TN_UT2/2020" . +_:Na3153e61734c4cd1b7c4a11bb64b76cc . +_:N76e90938195c463c9dd2af9dadcf3d56 "Colleen B. Jonsson" . +_:N76e90938195c463c9dd2af9dadcf3d56 . + _:N76e90938195c463c9dd2af9dadcf3d56 . +_:N1421ab28904c425faf6c308f77800e08 "TN_UT2 - Pegram, Tennessee, USA" . +_:N1421ab28904c425faf6c308f77800e08 "Mariah Taylor, Colleen Jonsson" . +_:N76e90938195c463c9dd2af9dadcf3d56 "Mariah Taylor" . +_:N76e90938195c463c9dd2af9dadcf3d56 "Mariah Taylor" . +_:N76e90938195c463c9dd2af9dadcf3d56 "Regional Biocontainment Laboratory, Memphis, TN" . +_:N14a259ceba1446a389be1076f7090540 "TN_UT2" . +_:Na3153e61734c4cd1b7c4a11bb64b76cc . + _:N17d644aee0054862ab8beb6cdf5cb4d6 . +_:N1421ab28904c425faf6c308f77800e08 . +_:N76e90938195c463c9dd2af9dadcf3d56 "Pjotr Prins" . +_:N76e90938195c463c9dd2af9dadcf3d56 "UTHSC, Memphis, Tennessee 38163, USA" . +_:N17d644aee0054862ab8beb6cdf5cb4d6 "Oxford Nanopore MiniIon RNA long reads" . +_:N69368ab7984c4659bcfa493bdca2d5f1 . +_:Na3153e61734c4cd1b7c4a11bb64b76cc "TN_UT2" . +_:N76e90938195c463c9dd2af9dadcf3d56 "TN_UT2" . + _:N69368ab7984c4659bcfa493bdca2d5f1 . +_:N17d644aee0054862ab8beb6cdf5cb4d6 . +_:Na3153e61734c4cd1b7c4a11bb64b76cc "2020-04-26" . diff --git a/test/runner.py b/test/runner.py new file mode 100644 index 0000000..3cfe042 --- /dev/null +++ b/test/runner.py @@ -0,0 +1,17 @@ +# Run tests. python3 test/runner.py + +import unittest + +# initialize the test suite +loader = unittest.TestLoader() +suite = unittest.TestSuite() + +import test_shex +import test_sparql + +suite.addTests(loader.loadTestsFromModule(test_shex)) +suite.addTests(loader.loadTestsFromModule(test_sparql)) + +# initialize a runner, pass it your suite and run it +runner = unittest.TextTestRunner(verbosity=3) +result = runner.run(suite) diff --git a/test/test_shex.py b/test/test_shex.py index e5d97cc..728bfdc 100644 --- a/test/test_shex.py +++ b/test/test_shex.py @@ -1,14 +1,12 @@ +# Run with python3 test/test_shex.py + import schema_salad.schema import schema_salad.ref_resolver import schema_salad.jsonld_context -# import pkg_resources -import logging -# import traceback -# from rdflib import Graph, Namespace from pyshex.evaluate import evaluate import unittest -class TestStringMethods(unittest.TestCase): +class TestShexMethods(unittest.TestCase): def test_schema(self): with open("bh20sequploader/bh20seq-schema.yml") as schema_resource: diff --git a/test/test_sparql.py b/test/test_sparql.py new file mode 100644 index 0000000..00bb3ed --- /dev/null +++ b/test/test_sparql.py @@ -0,0 +1,11 @@ +# Run with python3 test/test_sparql.py + +import unittest + +class TestSPARQL(unittest.TestCase): + + def test_sparql(self): + pass + +if __name__ == '__main__': + unittest.main() -- cgit v1.2.3