aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/fixtures/rdf.py43
-rw-r--r--tests/unit/db/rdf/test_wiki.py12
2 files changed, 40 insertions, 15 deletions
diff --git a/tests/fixtures/rdf.py b/tests/fixtures/rdf.py
index 9bf297b..028ef8d 100644
--- a/tests/fixtures/rdf.py
+++ b/tests/fixtures/rdf.py
@@ -1,19 +1,44 @@
"""Test fixtures to set up a test named graph for loading RDF data."""
import os
+from flask import config
import pytest
import requests
from requests.auth import HTTPDigestAuth
-def get_sparql_auth_conf(config_obj) -> dict:
- """Fetch SPARQL auth configuration from the configuration object."""
+def get_sparql_auth_conf() -> dict:
+ """Fetch SPARQL auth configuration from the configurafrom flask
+ import configuration object."""
+ # When loading from the environment, GN3_CONF precedes
+ # GN3_SECRETS. Don't change this order.
+ sparql_conf = config.Config("")
+ if os.environ.get("GN3_CONF"):
+ # Check whether GN3_CONF has been set, and ignore GN3_CONF
+ # otherwise. In CD, we use a mixed-text file, so we don't
+ # have an explicit PATH to point this to.
+ # https://git.genenetwork.org/gn-machines/tree/genenetwork-development.scm#n517
+ sparql_conf.from_envvar("GN3_CONF")
+ # Set sane defaults for GN3_SECRETS to CD's secret file. In CD,
+ # this file is set in the genenetwork3 cd gexp:
+ # https://git.genenetwork.org/gn-machines/tree/genenetwork-development.scm#n516
+ # However, during testing GN3_SECRETS isn't set; and by default,
+ # we run guix's default tests for python projects: `pytest`
+ # https://git.genenetwork.org/guix-bioinformatics/tree/gn/packages/genenetwork.scm#n182
+ if os.environ.get("GN3_SECRETS"):
+ sparql_conf.from_envvar("GN3_SECRETS")
+ # If the sparql configurations aren't loaded, set sane defaults.
+ # This way, the genenetwork3 package builds.
return {
- "sparql_user": config_obj["SPARQL_USER"],
- "sparql_auth_uri": config_obj["SPARQL_AUTH_URI"],
- "sparql_crud_auth_uri": config_obj["SPARQL_CRUD_AUTH_URI"],
- "sparql_endpoint": config_obj["SPARQL_ENDPOINT"],
- "sparql_password": config_obj["SPARQL_PASSWORD"],
+ "sparql_user": sparql_conf.get("SPARQL_USER", "dba"),
+ "sparql_auth_uri": sparql_conf.get(
+ "SPARQL_AUTH_URI", "http://localhost:8890/sparql-auth/"
+ ),
+ "sparql_crud_auth_uri": sparql_conf.get(
+ "SPARQL_CRUD_AUTH_URI", "http://localhost:8890/sparql-graph-crud-auth"
+ ),
+ "sparql_endpoint": sparql_conf.get("SPARQL_ENDPOINT", "http://localhost:8890"),
+ "sparql_password": sparql_conf.get("SPARQL_PASSWORD", "dba"),
}
@@ -21,10 +46,10 @@ def get_sparql_auth_conf(config_obj) -> dict:
# This is not idempotent. Consider having a special virtuoso instance
# just for running tests.
@pytest.fixture(scope="module")
-def rdf_setup(fxtr_app_config):
+def rdf_setup():
"""Upload RDF to a Virtuoso named graph"""
# Define the URL and file
- sparql_conf = get_sparql_auth_conf(fxtr_app_config)
+ sparql_conf = get_sparql_auth_conf()
url = sparql_conf["sparql_crud_auth_uri"]
file_path = os.path.join(
os.path.dirname(__file__).split("fixtures")[0],
diff --git a/tests/unit/db/rdf/test_wiki.py b/tests/unit/db/rdf/test_wiki.py
index 7627dbf..8dd4f3a 100644
--- a/tests/unit/db/rdf/test_wiki.py
+++ b/tests/unit/db/rdf/test_wiki.py
@@ -185,9 +185,9 @@ def test_sanitize_result(result, expected):
@pytest.mark.rdf
-def test_get_wiki_entries_by_symbol(fxtr_app_config, rdf_setup): # pylint: disable=W0613,W0621
+def test_get_wiki_entries_by_symbol(rdf_setup): # pylint: disable=W0613,W0621
"""Test that wiki entries are fetched correctly by symbol"""
- sparql_conf = get_sparql_auth_conf(fxtr_app_config)
+ sparql_conf = get_sparql_auth_conf()
result = get_wiki_entries_by_symbol(
symbol="ckb",
sparql_uri=sparql_conf["sparql_endpoint"],
@@ -260,9 +260,9 @@ and C1QL3 (CTRP13).",
@pytest.mark.rdf
-def test_get_comment_history(fxtr_app_config, rdf_setup): # pylint: disable=W0613,W0621
+def test_get_comment_history(rdf_setup): # pylint: disable=W0613,W0621
"""Test fetching a comment's history from RDF"""
- sparql_conf = get_sparql_auth_conf(fxtr_app_config)
+ sparql_conf = get_sparql_auth_conf()
result = get_comment_history(
comment_id=1158,
sparql_uri=sparql_conf["sparql_endpoint"],
@@ -353,9 +353,9 @@ Possible 3' UTR variants.",
@pytest.mark.rdf
-def test_update_wiki_comment(fxtr_app_config, rdf_setup): # pylint: disable=W0613,W0621
+def test_update_wiki_comment(rdf_setup): # pylint: disable=W0613,W0621
"""Test that a comment is updated correctly"""
- sparql_conf = get_sparql_auth_conf(fxtr_app_config)
+ sparql_conf = get_sparql_auth_conf()
update_wiki_comment(
insert_dict={
"Id": 230,