about summary refs log tree commit diff
path: root/tests/integration
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2022-02-14 14:35:29 +0300
committerFrederick Muriuki Muriithi2022-02-17 08:23:05 +0300
commit12db8134081bc679565dfff1aaa2da81f913dd9d (patch)
tree755235e6d08057cc592f269cc1749288bd71fb01 /tests/integration
parent9879964c42a5f9373fcfa2b3685cdd74cf3ea176 (diff)
downloadgenenetwork3-12db8134081bc679565dfff1aaa2da81f913dd9d.tar.gz
Test partial correlations endpoint with missing data in POST request
Add a test for the partial correlations endpoint, with:
- no data in the request
- missing items in the data

Fix the bugs caught by the test
Diffstat (limited to 'tests/integration')
-rw-r--r--tests/integration/test_partial_correlations.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/integration/test_partial_correlations.py b/tests/integration/test_partial_correlations.py
new file mode 100644
index 0000000..5b520e0
--- /dev/null
+++ b/tests/integration/test_partial_correlations.py
@@ -0,0 +1,90 @@
+"""Test partial correlations"""
+import pytest
+
+from tests.integration.conftest import client
+
+@pytest.mark.integration_test
+@pytest.mark.parametrize(
+    "post_data", (
+        None, {}, {
+            "primary_trait": None,
+            "control_traits": None,
+            "method": None,
+            "target_db": None
+        }, {
+            "primary_trait": None,
+            "control_traits": None,
+            "method": None,
+            "target_db": "a_db"
+        }, {
+            "primary_trait": None,
+            "control_traits": None,
+            "method": "a_method",
+            "target_db": None
+        }, {
+            "primary_trait": None,
+            "control_traits": None,
+            "method": "a_method",
+            "target_db": "a_db"
+        }, {
+            "primary_trait": None,
+            "control_traits": ["a_trait", "another"],
+            "method": None,
+            "target_db": None
+        }, {
+            "primary_trait": None,
+            "control_traits": ["a_trait", "another"],
+            "method": None,
+            "target_db": "a_db"
+        }, {
+            "primary_trait": None,
+            "control_traits": ["a_trait", "another"],
+            "method": "a_method",
+            "target_db": None
+        }, {
+            "primary_trait": None,
+            "control_traits": ["a_trait", "another"],
+            "method": "a_method",
+            "target_db": "a_db"
+        }, {
+            "primary_trait": "a_trait",
+            "control_traits": None,
+            "method": None,
+            "target_db": None
+        }, {
+            "primary_trait": "a_trait",
+            "control_traits": None,
+            "method": None,
+            "target_db": "a_db"
+        }, {
+            "primary_trait": "a_trait",
+            "control_traits": None,
+            "method": "a_method",
+            "target_db": None
+        }, {
+            "primary_trait": "a_trait",
+            "control_traits": None,
+            "method": "a_method",
+            "target_db": "a_db"
+        }, {
+            "primary_trait": "a_trait",
+            "control_traits": ["a_trait", "another"],
+            "method": None,
+            "target_db": None
+        }, {
+            "primary_trait": "a_trait",
+            "control_traits": ["a_trait", "another"],
+            "method": None,
+            "target_db": "a_db"
+        }, {
+            "primary_trait": "a_trait",
+            "control_traits": ["a_trait", "another"],
+            "method": "a_method",
+            "target_db": None
+        }))
+def test_partial_correlation_api_with_missing_request_data(client, post_data):
+    "Test /api/correlations/partial"
+    response = client.post("/api/correlation/partial", json=post_data)
+    assert (
+        response.status_code == 400 and response.is_json and
+        response.json.get("status") == "error")