2019-10-21 13:16:48 +01:00
|
|
|
|
import pytest
|
2019-10-21 14:14:59 +01:00
|
|
|
|
from freezegun import freeze_time
|
2019-10-18 16:09:39 +01:00
|
|
|
|
|
2019-10-21 13:16:48 +01:00
|
|
|
|
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
|
2019-10-18 16:43:52 +01:00
|
|
|
|
|
|
|
|
|
|
|
2023-08-25 09:12:23 -07:00
|
|
|
|
@pytest.mark.parametrize(
|
2023-09-11 16:51:30 -04:00
|
|
|
|
("extra_args", "expected_headings_and_events"),
|
|
|
|
|
|
[
|
2019-10-18 16:43:52 +01:00
|
|
|
|
(
|
2023-08-25 09:12:23 -07:00
|
|
|
|
{},
|
|
|
|
|
|
[
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"12 December 2012",
|
2023-08-25 09:12:23 -07:00
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 13:13 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Renamed this service from ‘Before lunch’ to ‘After lunch’ "
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 12:12 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Renamed this service from ‘Example service’ to ‘Before lunch’"
|
|
|
|
|
|
),
|
|
|
|
|
|
),
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"11 November 2012",
|
|
|
|
|
|
("Test User 12:12 " "Revoked the ‘Bad key’ API key"),
|
2023-08-25 09:12:23 -07:00
|
|
|
|
),
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"11 November",
|
|
|
|
|
|
("Test User 11:11 " "Created an API key called ‘Bad key’"),
|
2023-08-25 09:12:23 -07:00
|
|
|
|
),
|
|
|
|
|
|
(
|
|
|
|
|
|
"10 October 2010",
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 11:10 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Created an API key called ‘Good key’ "
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 10:09 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Created an API key called ‘Key event returned in non-chronological order’ "
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 02:01 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Created this service and called it ‘Example service’"
|
|
|
|
|
|
),
|
|
|
|
|
|
),
|
|
|
|
|
|
],
|
2019-10-18 16:43:52 +01:00
|
|
|
|
),
|
|
|
|
|
|
(
|
2023-08-25 09:12:23 -07:00
|
|
|
|
{"selected": "api"},
|
|
|
|
|
|
[
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"11 November 2012",
|
|
|
|
|
|
("Test User 12:12 " "Revoked the ‘Bad key’ API key"),
|
2023-08-25 09:12:23 -07:00
|
|
|
|
),
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"11 November",
|
|
|
|
|
|
("Test User 11:11 " "Created an API key called ‘Bad key’"),
|
2023-08-25 09:12:23 -07:00
|
|
|
|
),
|
|
|
|
|
|
(
|
|
|
|
|
|
"10 October 2010",
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 11:10 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Created an API key called ‘Good key’ "
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 10:09 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Created an API key called ‘Key event returned in non-chronological order’"
|
|
|
|
|
|
),
|
|
|
|
|
|
),
|
|
|
|
|
|
],
|
2019-10-18 16:43:52 +01:00
|
|
|
|
),
|
|
|
|
|
|
(
|
2023-08-25 09:12:23 -07:00
|
|
|
|
{"selected": "service"},
|
|
|
|
|
|
[
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"12 December 2012",
|
2023-08-25 09:12:23 -07:00
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 13:13 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Renamed this service from ‘Before lunch’ to ‘After lunch’ "
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 12:12 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Renamed this service from ‘Example service’ to ‘Before lunch’"
|
|
|
|
|
|
),
|
|
|
|
|
|
),
|
|
|
|
|
|
(
|
|
|
|
|
|
"10 October 2010",
|
|
|
|
|
|
(
|
2023-11-16 12:24:27 -08:00
|
|
|
|
"Test User 02:01 "
|
2023-08-25 09:12:23 -07:00
|
|
|
|
"Created this service and called it ‘Example service’"
|
|
|
|
|
|
),
|
|
|
|
|
|
),
|
|
|
|
|
|
],
|
2019-10-18 16:43:52 +01:00
|
|
|
|
),
|
2023-09-11 16:51:30 -04:00
|
|
|
|
],
|
2023-08-25 09:12:23 -07:00
|
|
|
|
)
|
2023-06-12 15:49:48 -04:00
|
|
|
|
@freeze_time("2012-01-01 01:01:01")
|
2019-10-21 13:16:48 +01:00
|
|
|
|
def test_history(
|
|
|
|
|
|
client_request,
|
|
|
|
|
|
mock_get_service_history,
|
|
|
|
|
|
mock_get_users_by_service,
|
|
|
|
|
|
extra_args,
|
|
|
|
|
|
expected_headings_and_events,
|
|
|
|
|
|
):
|
2023-08-25 09:12:23 -07:00
|
|
|
|
page = client_request.get("main.history", service_id=SERVICE_ONE_ID, **extra_args)
|
2019-10-21 13:16:48 +01:00
|
|
|
|
|
2023-08-25 09:12:23 -07:00
|
|
|
|
assert page.select_one("h1").text == "Audit events"
|
2019-10-21 13:16:48 +01:00
|
|
|
|
|
2025-10-06 09:38:54 -04:00
|
|
|
|
# Check for content directly
|
|
|
|
|
|
page_text = normalize_spaces(page.text)
|
2019-10-21 13:16:48 +01:00
|
|
|
|
|
2025-10-06 09:38:54 -04:00
|
|
|
|
for expected_heading, expected_events in expected_headings_and_events:
|
|
|
|
|
|
# Check heading exists in page
|
|
|
|
|
|
assert expected_heading in page_text
|
2019-10-21 13:16:48 +01:00
|
|
|
|
|
2025-10-06 09:38:54 -04:00
|
|
|
|
# The application renders with curly quotes, and our test data has curly quotes
|
|
|
|
|
|
for event in expected_events.split("Test User"):
|
|
|
|
|
|
if event.strip():
|
|
|
|
|
|
# Just check the main content without the "Test User" prefix
|
|
|
|
|
|
assert event.strip() in page_text
|