diff options
-rw-r--r-- | tests/fixtures/rdf.py | 43 | ||||
-rw-r--r-- | tests/unit/db/rdf/test_wiki.py | 12 |
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, |