diff options
author | Munyoki Kilyungi | 2024-09-19 13:12:33 +0300 |
---|---|---|
committer | BonfaceKilz | 2024-09-23 12:32:51 +0300 |
commit | 95896dd1da002742267f68bfafe69e2a11ba603a (patch) | |
tree | 74b02b2d6df6cab635680cb29798e34f80b14630 /tests/unit | |
parent | da5a35ef5b2fa2eb5110224afe805b0a9699bc8b (diff) | |
download | genenetwork3-95896dd1da002742267f68bfafe69e2a11ba603a.tar.gz |
Add RDF test cases.
* pytest.ini: Add rdf pytest marker.
* tests/test_data/ttl-files/test-data.ttl: New file with turtle test
data for RIF editing.
* tests/unit/db/rdf/test_wiki.py (test_sanitize_result): New test
case.
(test_get_comment_history): Ditto.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
Diffstat (limited to 'tests/unit')
-rw-r--r-- | tests/unit/db/rdf/test_wiki.py | 217 |
1 files changed, 216 insertions, 1 deletions
diff --git a/tests/unit/db/rdf/test_wiki.py b/tests/unit/db/rdf/test_wiki.py index e8f0e62..99ecab0 100644 --- a/tests/unit/db/rdf/test_wiki.py +++ b/tests/unit/db/rdf/test_wiki.py @@ -1,8 +1,18 @@ """Tests for gn3/db/rdf/wiki.py""" +from unittest import TestCase import pytest +import os -from gn3.db.rdf.wiki import __sanitize_result +from gn3.db.rdf.wiki import ( + __sanitize_result, + get_wiki_entries_by_symbol, + get_comment_history, + update_wiki_comment, +) + + +GRAPH = "<http://cd-test.genenetwork.org>" @pytest.mark.unit_test @@ -155,3 +165,208 @@ from gn3.db.rdf.wiki import __sanitize_result def test_sanitize_result(result, expected): """Test that the JSON-LD result is sanitized correctly""" assert __sanitize_result(result) == expected + + +@pytest.mark.rdf +def test_get_wiki_entries_by_symbol(): + """Test that wiki entries are fetched correctly by symbol""" + result = get_wiki_entries_by_symbol( + symbol="ckb", + sparql_uri=os.environ.get("SPARQL_ENDPOINT", "http://localhost:9082/sparql"), + graph=GRAPH, + ) + expected = { + "@context": { + "categories": "gnt:belongsToCategory", + "comment": "rdfs:comment", + "created": "dct:created", + "data": "@graph", + "dct": "http://purl.org/dc/terms/", + "email": "foaf:mbox", + "foaf": "http://xmlns.com/foaf/0.1/", + "gn": "http://genenetwork.org/id/", + "gnc": "http://genenetwork.org/category/", + "gnt": "http://genenetwork.org/term/", + "id": "dct:identifier", + "initial": "gnt:initial", + "pubmed_ids": "dct:references", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#>", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "reason": "gnt:reason", + "species": "gnt:species", + "symbol": "rdfs:label", + "type": "@type", + "version": "gnt:hasVersion", + "web_url": "foaf:homepage", + }, + "data": [ + { + "@id": "gn:wiki-1106-0", + "categories": [], + "comment": "high similarities on four locations on three different chromosomes", + "created": "2007-01-16 10:06:34", + "email": "XXX@XXX.com", + "id": 1106, + "initial": "dcc", + "pubmed_ids": [], + "reason": "", + "species": "mouse", + "symbol": "Ckb", + "version": 0, + "web_url": "", + }, + { + "@id": "gn:wiki-5006-0", + "categories": [ + "Genetic variation and alleles", + "Interactions: mRNA, proteins, other molecules", + ], + "comment": "Strong cis eQTL in brain RNA-seq data (LRS of 29 high B allele). Highly expressed in almost all neurons (not just interneurons). Trans targets of CKB include striatin (STRN) and C1QL3 (CTRP13).", + "created": "2012-11-11 10:37:11", + "email": "XXX@XXX.com", + "id": 5006, + "initial": "", + "pubmed_ids": [], + "reason": "", + "species": "mouse", + "symbol": "Ckb", + "version": 0, + "web_url": "", + }, + ], + } + TestCase().assertDictEqual(result, expected) + + +@pytest.mark.rdf +def test_get_comment_history(): + result = get_comment_history( + comment_id=1158, + sparql_uri=os.environ.get("SPARQL_ENDPOINT", "http://localhost:9082/sparql"), + graph=GRAPH, + ) + expected = { + "@context": { + "categories": "gnt:belongsToCategory", + "comment": "rdfs:comment", + "created": "dct:created", + "data": "@graph", + "dct": "http://purl.org/dc/terms/", + "email": "foaf:mbox", + "foaf": "http://xmlns.com/foaf/0.1/", + "gn": "http://genenetwork.org/id/", + "gnc": "http://genenetwork.org/category/", + "gnt": "http://genenetwork.org/term/", + "id": "dct:identifier", + "initial": "gnt:initial", + "pubmed_ids": "dct:references", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#>", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "reason": "gnt:reason", + "species": "gnt:species", + "symbol": "rdfs:label", + "type": "@type", + "version": "gnt:hasVersion", + "web_url": "foaf:homepage", + }, + "data": [ + { + "@id": "gn:wiki-1158-2", + "categories": [ + "Probes and probe sets", + "Transcriptional and translation control", + ], + "comment": "Validated strong cis-QTL in CNS using allele-specific expression (ASE) SNaPshot assay. Possible 3' UTR variants.", + "created": "2007-04-05 09:11:05", + "email": "XXX@XXX.com", + "initial": "dcc", + "pubmed_ids": [], + "reason": "new data", + "species": "mouse", + "symbol": "Lpl", + "version": 2, + "web_url": "", + }, + { + "@id": "gn:wiki-1158-1", + "categories": [ + "Probes and probe sets", + "Transcriptional and translation control", + ], + "comment": "putative 3' UTR variants", + "created": "2007-02-09 09:23:40", + "email": "XXX@XXX.com", + "initial": "dcc", + "reason": "", + "pubmed_ids": [], + "species": "mouse", + "symbol": "Lpl", + "version": 1, + "web_url": "", + }, + { + "@id": "gn:wiki-1158-0", + "categories": [ + "Probes and probe sets", + "Transcriptional and translation control", + ], + "comment": "Validated strong cis-QTL in CNS using allele-specific expression (ASE) SNaPshot assay (Daniel Ciobanu and al., 2007). Possible 3' UTR variants.", + "created": "2007-05-08 14:46:07", + "email": "XXX@XXX.com", + "initial": "dcc", + "pubmed_ids": [], + "reason": "addition", + "species": "mouse", + "symbol": "Lpl", + "version": 0, + "web_url": "", + }, + ], + } + # breakpoint() + TestCase().assertDictEqual(result, expected) + + +@pytest.mark.rdf +def test_update_wiki_comment(rdf_setup): + """Test that a comment is updated correctly""" + response = update_wiki_comment( + insert_dict={ + "Id": 230, + "symbol": "Shh", + "PubMed_ID": "2 3 4", + "email": "test@test.com", + "comment": "Updated comment", + "createtime": "2007-01-16 11:06:34", + "weburl": "http://some-website.com", + "initial": "BMK", + "reason": "Testing", + "versionId": 3, + "species": "mouse", + "categories": [], + }, + sparql_user=SPARQL_CONF["sparql_user"], + sparql_password=SPARQL_CONF["sparql_password"], + sparql_auth_uri=SPARQL_CONF["sparql_auth_uri"], + graph=GRAPH, + ) + updated_history = get_comment_history( + comment_id=230, + sparql_uri=SPARQL_CONF["sparql_endpoint"], + graph=GRAPH, + )["data"] + assert len(updated_history) == 4 + TestCase().assertDictEqual(updated_history[0], { + "@id": "gn:wiki-230-3", + "categories": [], + "comment": "Updated comment", + "created": "2007-01-16 11:06:34", + "email": "test@test.com", + "initial": "BMK", + "pubmed_ids": [2, 3, 4], + "reason": "Testing", + "species": "mouse", + "symbol": "Shh", + "version": 3, + "web_url": "http://some-website.com", + }) |