|
1 | 1 | from datetime import datetime |
2 | 2 | from datetime import timedelta |
| 3 | +from shlex import split as split_command |
3 | 4 |
|
4 | 5 | import pytest |
| 6 | +from tests.integration.conftest import append_profile |
| 7 | +from tests.integration.util import assert_test_is_successful |
| 8 | +from tests.integration.util import DataServer |
5 | 9 |
|
6 | | -SEARCH_COMMAND = "code42 audit-logs search" |
7 | | -BASE_COMMAND = "{} -b".format(SEARCH_COMMAND) |
8 | | -begin_date = datetime.utcnow() - timedelta(days=-10) |
| 10 | +from code42cli.main import cli |
| 11 | + |
| 12 | + |
| 13 | +begin_date = datetime.utcnow() - timedelta(days=2) |
9 | 14 | begin_date_str = begin_date.strftime("%Y-%m-%d %H:%M:%S") |
10 | | -end_date = datetime.utcnow() - timedelta(days=10) |
| 15 | +end_date = datetime.utcnow() - timedelta(days=0) |
11 | 16 | end_date_str = end_date.strftime("%Y-%m-%d %H:%M:%S") |
12 | 17 |
|
13 | 18 |
|
14 | 19 | @pytest.mark.integration |
15 | 20 | @pytest.mark.parametrize( |
16 | | - "command", |
17 | | - [ |
18 | | - ("{} '{}'".format(BASE_COMMAND, begin_date_str)), |
19 | | - ("{} '{}' -e '{}'".format(BASE_COMMAND, begin_date_str, end_date_str)), |
20 | | - ("{} '{}' --end '{}'".format(BASE_COMMAND, begin_date_str, end_date_str)), |
21 | | - ("{} '{}' --event-type '{}'".format(BASE_COMMAND, begin_date_str, "test")), |
22 | | - ("{} '{}' --username '{}'".format(BASE_COMMAND, begin_date_str, "test")), |
23 | | - ("{} '{}' --user-id '{}'".format(BASE_COMMAND, begin_date_str, "123")), |
24 | | - ("{} '{}' --user-ip '{}'".format(BASE_COMMAND, begin_date_str, "0.0.0.0")), |
25 | | - ("{} '{}' --affected-user-id '{}'".format(BASE_COMMAND, begin_date_str, "123")), |
26 | | - ( |
27 | | - "{} '{}' --affected-username '{}'".format( |
28 | | - BASE_COMMAND, begin_date_str, "test" |
29 | | - ) |
30 | | - ), |
31 | | - ("{} '{}' -f {}".format(BASE_COMMAND, begin_date_str, "CSV")), |
32 | | - ("{} '{}' -f '{}'".format(BASE_COMMAND, begin_date_str, "TABLE")), |
33 | | - ("{} '{}' -f '{}'".format(BASE_COMMAND, begin_date_str, "JSON")), |
34 | | - ("{} '{}' -f '{}'".format(BASE_COMMAND, begin_date_str, "RAW-JSON")), |
35 | | - ("{} '{}' --format {}".format(BASE_COMMAND, begin_date_str, "CSV")), |
36 | | - ("{} '{}' --format '{}'".format(BASE_COMMAND, begin_date_str, "TABLE")), |
37 | | - ("{} '{}' --format '{}'".format(BASE_COMMAND, begin_date_str, "JSON")), |
38 | | - ("{} '{}' --format '{}'".format(BASE_COMMAND, begin_date_str, "RAW-JSON")), |
39 | | - ("{} --begin '{}'".format(SEARCH_COMMAND, begin_date_str)), |
40 | | - ("{} '{}' -d".format(BASE_COMMAND, begin_date_str)), |
41 | | - ("{} '{}' --debug".format(BASE_COMMAND, begin_date_str)), |
42 | | - ], |
| 21 | + "protocol", ["TCP", "UDP"], |
43 | 22 | ) |
44 | | -def test_auditlogs_search_command_returns_success_return_code(command, command_runner): |
45 | | - return_code, response = command_runner(command) |
46 | | - assert return_code == 0 |
| 23 | +def test_auditlogs_send_to_command_returns_success_return_code( |
| 24 | + runner, integration_test_profile, protocol |
| 25 | +): |
| 26 | + command = "audit-logs send-to localhost:5140 -p {} -b '{}'".format( |
| 27 | + protocol, begin_date_str |
| 28 | + ) |
| 29 | + with DataServer(protocol=protocol): |
| 30 | + result = runner.invoke(cli, split_command(append_profile(command))) |
| 31 | + assert result.exit_code == 0 |
| 32 | + |
| 33 | + |
| 34 | +@pytest.mark.integration |
| 35 | +def test_auditlogs_search_command_with_short_hand_begin_returns_success_return_code( |
| 36 | + runner, integration_test_profile |
| 37 | +): |
| 38 | + command = "audit-logs search -b '{}'".format(begin_date_str) |
| 39 | + assert_test_is_successful(runner, append_profile(command)) |
| 40 | + |
| 41 | + |
| 42 | +def test_auditlogs_search_command_with_full_begin_returns_success_return_code( |
| 43 | + runner, integration_test_profile, |
| 44 | +): |
| 45 | + command = "audit-logs search --begin '{}'".format(begin_date_str) |
| 46 | + assert_test_is_successful(runner, append_profile(command)) |
0 commit comments