Files
notifications-admin/tests/app/main/views/test_history.py
Chris Hill-Scott 600e3affc1 Show user names for events without API changes
This commit introduces a slightly hacky way of putting usernames against
events, given that the API only returns user IDs.

It does so without:
- making changes to the API
- making a pages that could potentially fire off dozens of API calls (ie
  one per user)

This comes with the limitation that it can only get names for those team
members who are still in the team. Otherwise it will say ‘Unknown’.

In the future the API should probably return the name and email address
for the user who initiated the event, and whether that user was acting
in a platform admin capacity.
2019-10-23 13:15:41 +01:00

100 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import pytest
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
@pytest.mark.parametrize('extra_args, expected_headings_and_events', (
({}, [
(
'12 December',
(
'Test User 12:12pm '
'Renamed this service from Example service to Real service'
),
),
(
'11 November',
(
'Test User 12:12pm '
'Revoked the Bad key API key'
),
),
(
'11 November',
(
'Test User 11:11am '
'Created an API key called Bad key'
),
),
(
'10 October',
(
'Test User 11:10am '
'Created an API key called Good key '
'Unknown 2:01am '
'Created this service and called it Example service'
),
),
]),
({'selected': 'api'}, [
(
'11 November',
(
'Test User 12:12pm '
'Revoked the Bad key API key'
),
),
(
'11 November',
(
'Test User 11:11am '
'Created an API key called Bad key'
),
),
(
'10 October',
(
'Test User 11:10am '
'Created an API key called Good key'
),
),
]),
({'selected': 'service'}, [
(
'12 December',
(
'Test User 12:12pm '
'Renamed this service from Example service to Real service'
),
),
(
'10 October',
(
'Unknown 2:01am '
'Created this service and called it Example service'
),
),
]),
))
def test_history(
client_request,
mock_get_service_history,
mock_get_users_by_service,
extra_args,
expected_headings_and_events,
):
page = client_request.get('main.history', service_id=SERVICE_ONE_ID, **extra_args)
assert page.select_one('h1').text == 'Audit events'
headings = page.select('main h2.heading-small')
events = page.select('main ul.bottom-gutter')
assert len(headings) == len(events) == len(expected_headings_and_events)
for index, expected in enumerate(expected_headings_and_events):
assert (
normalize_spaces(headings[index].text),
normalize_spaces(events[index].text),
) == expected