diff --git a/test/api_endpoints/test_events_endpoints.py b/test/api_endpoints/test_events_endpoints.py index 2d2f6d89..8d86f16f 100644 --- a/test/api_endpoints/test_events_endpoints.py +++ b/test/api_endpoints/test_events_endpoints.py @@ -135,8 +135,12 @@ def test_get_events_pagination(client, api_token, test_mac): """limit/offset on GET /events must page through the same set the unpaginated response gives for one MAC, ordered by eveDateTime descending, with no gaps or duplicates, and must reject invalid values.""" - for _ in range(5): - create_event(client, api_token, test_mac) + # Distinct event_type per call - idx_events_unique is on + # (eveMac, eveIp, eveEventType, eveDateTime), and eveDateTime only has + # second precision, so 5 calls in the same second with the same + # event_type would collide and INSERT OR IGNORE would drop 4 of them. + for i in range(5): + create_event(client, api_token, test_mac, event=f"UnitTest Event {i}") full_resp = list_events(client, api_token, test_mac) assert full_resp.status_code == 200 diff --git a/test/api_endpoints/test_mcp_extended_endpoints.py b/test/api_endpoints/test_mcp_extended_endpoints.py index 49daeef5..48975f8c 100644 --- a/test/api_endpoints/test_mcp_extended_endpoints.py +++ b/test/api_endpoints/test_mcp_extended_endpoints.py @@ -177,7 +177,7 @@ def test_get_all_events(mock_get, client, api_token): response = client.get('/events?mac=00:11:22:33:44:55', headers=auth_headers(api_token)) assert response.status_code == 200 assert response.json["success"] is True - mock_get.assert_called_with("00:11:22:33:44:55") + mock_get.assert_called_with("00:11:22:33:44:55", None, None) @patch('models.event_instance.EventInstance.deleteEventsOlderThan') diff --git a/test/backend/test_workflows.py b/test/backend/test_workflows.py index 59b86da0..3cb9f2d6 100644 --- a/test/backend/test_workflows.py +++ b/test/backend/test_workflows.py @@ -22,7 +22,7 @@ from unittest.mock import patch, MagicMock sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "server")) sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) -from db_test_helpers import make_db, make_device_dict, insert_device_from_dict +from db_test_helpers import make_db, make_device_dict, insert_device_from_dict, CREATE_PLUGINS_OBJECTS # --------------------------------------------------------------------------- @@ -500,6 +500,9 @@ class TestTriggerDeviceGuidLookup(unittest.TestCase): def test_devguid_lookup_uses_index(self): from db.db_upgrade import ensure_Indexes + # ensure_Indexes() also indexes Plugins_Objects.objectGuid, which + # make_db()'s minimal fixture doesn't create. + self.conn.execute(CREATE_PLUGINS_OBJECTS) ensure_Indexes(self.conn) plan = self.conn.execute(