summaryrefslogtreecommitdiff
path: root/tests/test_insert.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_insert.py')
-rw-r--r--tests/test_insert.py110
1 files changed, 110 insertions, 0 deletions
diff --git a/tests/test_insert.py b/tests/test_insert.py
new file mode 100644
index 0000000..5bee72d
--- /dev/null
+++ b/tests/test_insert.py
@@ -0,0 +1,110 @@
+"""
+Test our insert
+"""
+import unittest
+import json
+
+import requests
+
+from src.soc_collector.auth import load_api_keys
+from src.soc_collector.soc_collector_cli import json_load_data
+
+
+BASE_URL = "https://localhost:8000"
+
+
+class TestAddress(unittest.TestCase):
+ """
+ Test our insert
+ """
+
+ def test_insert(self) -> None:
+ """
+ Test insert
+ """
+
+ api_keys = load_api_keys("data/api_keys.txt")
+ insert_data = json_load_data("./tests/data/example_data_1.json")
+
+ request_headers = {"API-KEY": api_keys[-1]}
+ req = requests.post(
+ f"{BASE_URL}/sc/v0",
+ headers=request_headers,
+ timeout=4,
+ verify="./data/collector_root_ca.crt",
+ )
+ self.assertTrue(req.status_code == 400)
+
+ req = requests.post(
+ f"{BASE_URL}/sc/v0",
+ json={"dummy_data": "dummy"},
+ headers=request_headers,
+ timeout=4,
+ verify="./data/collector_root_ca.crt",
+ )
+ self.assertTrue(req.status_code == 400)
+
+ bad_data = insert_data.copy()
+ bad_data["_id"] = "63765238890b49a0c3118f4f"
+ req = requests.post(
+ f"{BASE_URL}/sc/v0",
+ json=bad_data,
+ headers=request_headers,
+ timeout=4,
+ verify="./data/collector_root_ca.crt",
+ )
+ self.assertTrue(req.status_code == 400)
+ del bad_data["_id"]
+
+ del bad_data["ip"]
+ req = requests.post(
+ f"{BASE_URL}/sc/v0",
+ json=bad_data,
+ headers=request_headers,
+ timeout=4,
+ verify="./data/collector_root_ca.crt",
+ )
+ self.assertTrue(req.status_code == 400)
+
+ req = requests.post(
+ f"{BASE_URL}/sc/v0",
+ json=insert_data,
+ headers=request_headers,
+ timeout=4,
+ verify="./data/collector_root_ca.crt",
+ )
+ self.assertTrue(req.status_code == 200)
+ key = json.loads(req.text)["_id"]
+
+ # Allow duplicate data but with different id
+ req = requests.post(
+ f"{BASE_URL}/sc/v0",
+ json=insert_data,
+ headers=request_headers,
+ timeout=4,
+ verify="./data/collector_root_ca.crt",
+ )
+ self.assertTrue(req.status_code == 200)
+ key2 = json.loads(req.text)["_id"]
+
+ req = requests.get(
+ f"{BASE_URL}/sc/v0/{key}",
+ json=insert_data,
+ headers=request_headers,
+ timeout=4,
+ verify="./data/collector_root_ca.crt",
+ )
+ self.assertTrue(req.status_code == 200)
+ db_data = json.loads(req.text)["doc"]
+ del db_data["_id"]
+ self.assertTrue(insert_data == db_data)
+
+ # Delete test data
+ req = requests.delete(
+ f"{BASE_URL}/sc/v0/{key}", headers=request_headers, timeout=4, verify="./data/collector_root_ca.crt"
+ )
+ self.assertTrue(req.status_code == 200)
+ req = requests.delete(
+ f"{BASE_URL}/sc/v0/{key2}", headers=request_headers, timeout=4, verify="./data/collector_root_ca.crt"
+ )
+ self.assertTrue(req.status_code == 200)