aboutsummaryrefslogtreecommitdiff
path: root/tests/integration
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration')
-rw-r--r--tests/integration/conftest.py4
-rw-r--r--tests/integration/test_correlation.py4
-rw-r--r--tests/integration/test_partial_correlations.py61
3 files changed, 40 insertions, 29 deletions
diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py
index e1d1c37..be927a4 100644
--- a/tests/integration/conftest.py
+++ b/tests/integration/conftest.py
@@ -19,4 +19,6 @@ def client():
def db_conn():
"""Create a db connection fixture for tests"""
## Update this to use temp db once that is in place
- return database_connector()[0]
+ conn = database_connector()
+ yield conn
+ conn.close()
diff --git a/tests/integration/test_correlation.py b/tests/integration/test_correlation.py
index cf63c17..d52ab01 100644
--- a/tests/integration/test_correlation.py
+++ b/tests/integration/test_correlation.py
@@ -71,7 +71,9 @@ class CorrelationIntegrationTest(TestCase):
mock_compute_corr.return_value = []
- database_connector.return_value = (mock.Mock(), mock.Mock())
+ database_connector.return_value = mock.Mock()
+ database_connector.return_value.__enter__ = mock.Mock()
+ database_connector.return_value.__exit__ = mock.Mock()
post_data = {"1426678_at": "68031",
"1426679_at": "68036",
diff --git a/tests/integration/test_partial_correlations.py b/tests/integration/test_partial_correlations.py
index 7f9ff30..d249b42 100644
--- a/tests/integration/test_partial_correlations.py
+++ b/tests/integration/test_partial_correlations.py
@@ -1,4 +1,6 @@
"""Test partial correlations"""
+from unittest import mock
+
import pytest
from gn3.computations.partial_correlations import partial_correlations_entry
@@ -97,43 +99,46 @@ def test_partial_correlation_api_with_missing_request_data(client, post_data):
@pytest.mark.parametrize(
"post_data",
({# ProbeSet
- "primary_trait": {"dataset": "a_dataset", "name": "a_name"},
+ "primary_trait": {"dataset": "a_dataset", "trait_name": "a_name"},
"control_traits": [
- {"dataset": "a_dataset", "name": "a_name"},
- {"dataset": "a_dataset2", "name": "a_name2"}],
+ {"dataset": "a_dataset", "trait_name": "a_name"},
+ {"dataset": "a_dataset2", "trait_name": "a_name2"}],
"method": "a_method",
"target_db": "a_db"
}, {# Publish
- "primary_trait": {"dataset": "a_Publish_dataset", "name": "a_name"},
+ "primary_trait": {
+ "dataset": "a_Publish_dataset", "trait_name": "a_name"},
"control_traits": [
- {"dataset": "a_dataset", "name": "a_name"},
- {"dataset": "a_dataset2", "name": "a_name2"}],
+ {"dataset": "a_dataset", "trait_name": "a_name"},
+ {"dataset": "a_dataset2", "trait_name": "a_name2"}],
"method": "a_method",
"target_db": "a_db"
}, {# Geno
- "primary_trait": {"dataset": "a_Geno_dataset", "name": "a_name"},
+ "primary_trait": {"dataset": "a_Geno_dataset", "trait_name": "a_name"},
"control_traits": [
- {"dataset": "a_dataset", "name": "a_name"},
- {"dataset": "a_dataset2", "name": "a_name2"}],
+ {"dataset": "a_dataset", "trait_name": "a_name"},
+ {"dataset": "a_dataset2", "trait_name": "a_name2"}],
"method": "a_method",
"target_db": "a_db"
}, {# Temp
- "primary_trait": {"dataset": "a_Temp_dataset", "name": "a_name"},
+ "primary_trait": {"dataset": "a_Temp_dataset", "trait_name": "a_name"},
"control_traits": [
- {"dataset": "a_dataset", "name": "a_name"},
- {"dataset": "a_dataset2", "name": "a_name2"}],
+ {"dataset": "a_dataset", "trait_name": "a_name"},
+ {"dataset": "a_dataset2", "trait_name": "a_name2"}],
"method": "a_method",
"target_db": "a_db"
}))
-def test_partial_correlation_api_with_non_existent_primary_traits(client, post_data):
+def test_partial_correlation_api_with_non_existent_primary_traits(
+ client, post_data, mocker):
"""
Check that the system responds appropriately in the case where the user
makes a request with a non-existent primary trait.
"""
+ mocker.patch("gn3.api.correlation.redis.Redis", mock.MagicMock())
response = client.post("/api/correlation/partial", json=post_data)
assert (
- response.status_code == 404 and response.is_json and
- response.json.get("status") != "error")
+ response.status_code == 200 and response.is_json and
+ response.json.get("status") == "success")
@pytest.mark.integration_test
@pytest.mark.slow
@@ -141,41 +146,43 @@ def test_partial_correlation_api_with_non_existent_primary_traits(client, post_d
"post_data",
({# ProbeSet
"primary_trait": {
- "dataset": "UCLA_BXDBXH_CARTILAGE_V2", "name": "ILM103710672"},
+ "dataset": "UCLA_BXDBXH_CARTILAGE_V2",
+ "trait_name": "ILM103710672"},
"control_traits": [
- {"dataset": "a_dataset", "name": "a_name"},
- {"dataset": "a_dataset2", "name": "a_name2"}],
+ {"dataset": "a_dataset", "trait_name": "a_name"},
+ {"dataset": "a_dataset2", "trait_name": "a_name2"}],
"method": "a_method",
"target_db": "a_db"
}, {# Publish
- "primary_trait": {"dataset": "BXDPublish", "name": "BXD_12557"},
+ "primary_trait": {"dataset": "BXDPublish", "trait_name": "BXD_12557"},
"control_traits": [
- {"dataset": "a_dataset", "name": "a_name"},
- {"dataset": "a_dataset2", "name": "a_name2"}],
+ {"dataset": "a_dataset", "trait_name": "a_name"},
+ {"dataset": "a_dataset2", "trait_name": "a_name2"}],
"method": "a_method",
"target_db": "a_db"
}, {# Geno
- "primary_trait": {"dataset": "AKXDGeno", "name": "D4Mit16"},
+ "primary_trait": {"dataset": "AKXDGeno", "trait_name": "D4Mit16"},
"control_traits": [
- {"dataset": "a_dataset", "name": "a_name"},
- {"dataset": "a_dataset2", "name": "a_name2"}],
+ {"dataset": "a_dataset", "trait_name": "a_name"},
+ {"dataset": "a_dataset2", "trait_name": "a_name2"}],
"method": "a_method",
"target_db": "a_db"
}
# Temp -- the data in the database for these is ephemeral, making it
# difficult to test for this
))
-def test_partial_correlation_api_with_non_existent_control_traits(client, post_data):
+def test_partial_correlation_api_with_non_existent_control_traits(client, post_data, mocker):
"""
Check that the system responds appropriately in the case where the user
makes a request with a non-existent control traits.
The code repetition here is on purpose - valuing clarity over succinctness.
"""
+ mocker.patch("gn3.api.correlation.redis.Redis", mock.MagicMock())
response = client.post("/api/correlation/partial", json=post_data)
assert (
- response.status_code == 404 and response.is_json and
- response.json.get("status") != "error")
+ response.status_code == 200 and response.is_json and
+ response.json.get("status") == "success")
@pytest.mark.integration_test
@pytest.mark.slow