aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/db/rdf/test_wiki.py
diff options
context:
space:
mode:
authorMunyoki Kilyungi2024-09-19 13:12:33 +0300
committerBonfaceKilz2024-09-23 12:32:51 +0300
commit95896dd1da002742267f68bfafe69e2a11ba603a (patch)
tree74b02b2d6df6cab635680cb29798e34f80b14630 /tests/unit/db/rdf/test_wiki.py
parentda5a35ef5b2fa2eb5110224afe805b0a9699bc8b (diff)
downloadgenenetwork3-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/db/rdf/test_wiki.py')
-rw-r--r--tests/unit/db/rdf/test_wiki.py217
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",
+ })