""" Test our replace """ 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 replace """ def test_replace(self) -> None: """ Test replace """ api_keys = load_api_keys("data/api_keys.txt") insert_data = json_load_data("./tests/data/example_data_1.json") replace_data = json_load_data("./tests/data/example_data_1_replace_test.json") request_headers = {"API-KEY": api_keys[-1]} 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) replace_data["_id"] = json.loads(req.text)["_id"] bad_data = replace_data.copy() # ip missing del bad_data["ip"] req = requests.put( 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) bad_data["ip"] = replace_data["ip"] del bad_data["_id"] req = requests.put( 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) bad_data["_id"] = "sdvnsvdlac" req = requests.put( 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.put( f"{BASE_URL}/sc/v0", json=replace_data, headers=request_headers, timeout=4, verify="./data/collector_root_ca.crt", ) self.assertTrue(req.status_code == 200) req = requests.get( f"{BASE_URL}/sc/v0/{replace_data['_id']}", 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"] self.assertTrue(replace_data == db_data) # Delete test data req = requests.delete( f"{BASE_URL}/sc/v0/{replace_data['_id']}", headers=request_headers, timeout=4, verify="./data/collector_root_ca.crt", ) self.assertTrue(req.status_code == 200)