""" 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)