Skip to content

Commit 2ac1c58

Browse files
committed
Fix test cases for new put_event data structure changes
1 parent 34d1a32 commit 2ac1c58

4 files changed

Lines changed: 34 additions & 21 deletions

File tree

aikido_zen/background_process/cloud_connection_manager/on_start_test.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def mock_connection_manager():
88
connection_manager = MagicMock()
99
connection_manager.token = "test_token"
1010
connection_manager.timeout_in_sec = 5
11-
connection_manager.api.report = MagicMock(return_value={"success": True})
11+
connection_manager.report_api_event = MagicMock(return_value={"success": True})
1212
connection_manager.get_manager_info = lambda: {}
1313
connection_manager.update_service_config = MagicMock()
1414
return connection_manager
@@ -19,15 +19,15 @@ def test_on_start_no_token():
1919
connection_manager = MagicMock()
2020
connection_manager.token = None
2121
on_start(connection_manager)
22-
connection_manager.api.report.assert_not_called()
22+
connection_manager.report_api_event.assert_called()
2323

2424

2525
def test_on_start_success(mock_connection_manager, caplog):
2626
"""Test that the API call is made successfully and the service config is updated."""
2727
on_start(mock_connection_manager)
2828

2929
# Check that the API report method was called
30-
mock_connection_manager.api.report.assert_called_once()
30+
mock_connection_manager.report_api_event.assert_called_once()
3131

3232
# Check that the service config was updated
3333
mock_connection_manager.update_service_config.assert_called_once()
@@ -38,18 +38,15 @@ def test_on_start_success(mock_connection_manager, caplog):
3838

3939
def test_on_start_failure(mock_connection_manager, caplog):
4040
"""Test that an error is logged when the API call fails."""
41-
mock_connection_manager.api.report.return_value = {
41+
mock_connection_manager.report_api_event.return_value = {
4242
"success": False,
4343
"error": "Some error",
4444
}
4545

4646
on_start(mock_connection_manager)
4747

4848
# Check that the API report method was called
49-
mock_connection_manager.api.report.assert_called_once()
49+
mock_connection_manager.report_api_event.assert_called_once()
5050

5151
# Check that the service config was not updated
5252
mock_connection_manager.update_service_config.assert_not_called()
53-
54-
# Check that the error log was called
55-
assert "Failed to communicate with Aikido Server : Some error" in caplog.text

aikido_zen/background_process/commands/sync_data_test.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def test_process_sync_data_initialization(setup_connection_manager):
7272
],
7373
}
7474

75-
result = process_sync_data(connection_manager, data, None)
75+
result = process_sync_data(connection_manager, data)
7676

7777
# Check that routes were initialized correctly
7878
assert len(connection_manager.routes) == 2
@@ -147,7 +147,7 @@ def test_process_sync_data_with_last_updated_at_below_zero(setup_connection_mana
147147
"middleware_installed": True,
148148
}
149149

150-
result = process_sync_data(connection_manager, data, None)
150+
result = process_sync_data(connection_manager, data)
151151

152152
# Check that routes were initialized correctly
153153
assert len(connection_manager.routes) == 2
@@ -214,7 +214,7 @@ def test_process_sync_data_existing_route_and_hostnames(setup_connection_manager
214214
}
215215

216216
# First call to initialize the route
217-
process_sync_data(connection_manager, data, None)
217+
process_sync_data(connection_manager, data)
218218

219219
# Second call to update the existing route
220220
data_update = {
@@ -241,7 +241,7 @@ def test_process_sync_data_existing_route_and_hostnames(setup_connection_manager
241241
},
242242
}
243243

244-
result = process_sync_data(connection_manager, data_update, None)
244+
result = process_sync_data(connection_manager, data_update)
245245

246246
# Check that the hit count was updated correctly
247247
assert (
@@ -275,7 +275,7 @@ def test_process_sync_data_no_routes(setup_connection_manager):
275275
connection_manager = setup_connection_manager
276276
data = {"current_routes": {}, "reqs": 0} # No requests to add
277277

278-
result = process_sync_data(connection_manager, data, None)
278+
result = process_sync_data(connection_manager, data)
279279

280280
# Check that no routes were initialized
281281
assert len(connection_manager.routes) == 0

aikido_zen/sources/functions/request_handler_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def __init__(self):
4242
def send_data_to_bg_process(self, action, obj, receive=False, timeout_in_sec=0.1):
4343
if action != "CHECK_FIREWALL_LISTS":
4444
return {"success": False}
45-
res = process_check_firewall_lists(self.conn_manager, obj, None, None)
45+
res = process_check_firewall_lists(self.conn_manager, obj)
4646
return {
4747
"success": True,
4848
"data": res,

aikido_zen/vulnerabilities/init_test.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,29 @@ def test_sql_injection_with_comms(caplog, get_context, monkeypatch):
144144
)
145145
mock_comms.send_data_to_bg_process.assert_called_once()
146146
call_args = mock_comms.send_data_to_bg_process.call_args[0]
147-
assert call_args[0] == "ATTACK"
148-
assert call_args[1][0]["kind"] == "sql_injection"
149-
assert (
150-
call_args[1][0]["metadata"]["sql"]
151-
== "INSERT * INTO VALUES ('doggoss2', TRUE);"
152-
)
153-
assert call_args[1][0]["metadata"]["dialect"] == "mysql"
147+
assert call_args[0] == "put_event"
148+
assert call_args[1].event["request"] == {
149+
"ipAddress": "198.51.100.23",
150+
"method": "GET",
151+
"route": "/hello",
152+
"source": "flask",
153+
"url": "http://localhost:8080/hello",
154+
"userAgent": None,
155+
}
156+
del call_args[1].event["attack"]["stack"] # Hard to test
157+
assert call_args[1].event["attack"] == {
158+
"blocked": True,
159+
"kind": "sql_injection",
160+
"metadata": {
161+
"dialect": "mysql",
162+
"sql": "INSERT * INTO VALUES ('doggoss2', TRUE);",
163+
},
164+
"operation": "test_op",
165+
"pathToPayload": ".test_input_sql",
166+
"payload": '"doggoss2\', TRUE"',
167+
"source": "body",
168+
"user": None,
169+
}
154170

155171

156172
def test_ssrf_vulnerability_scan_adds_hostname(get_context):

0 commit comments

Comments
 (0)