mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-18 05:29:38 -04:00
Add an event if a user is archived
This adds a new type of event, 'archive_user', which stores the id of the archived user and the id of the user who is doing the archiving.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import pytest
|
||||
from bs4 import BeautifulSoup
|
||||
from flask import url_for
|
||||
from lxml import html
|
||||
@@ -166,6 +167,7 @@ def test_archive_user_posts_to_user_client(
|
||||
logged_in_platform_admin_client,
|
||||
api_user_active,
|
||||
mocker,
|
||||
mock_events,
|
||||
):
|
||||
mock_user_client = mocker.patch('app.user_api_client.post')
|
||||
|
||||
@@ -176,3 +178,24 @@ def test_archive_user_posts_to_user_client(
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.user_information', user_id=api_user_active.id, _external=True)
|
||||
mock_user_client.assert_called_once_with('/user/{}/archive'.format(api_user_active.id), data=None)
|
||||
|
||||
assert mock_events.called
|
||||
|
||||
|
||||
def test_archive_user_does_not_create_event_if_user_client_raises_exception(
|
||||
logged_in_platform_admin_client,
|
||||
api_user_active,
|
||||
mocker,
|
||||
mock_events,
|
||||
):
|
||||
mock_user_client = mocker.patch('app.user_api_client.post', side_effect=Exception())
|
||||
|
||||
with pytest.raises(Exception):
|
||||
response = logged_in_platform_admin_client.post(
|
||||
url_for('main.archive_user', user_id=api_user_active.id)
|
||||
)
|
||||
|
||||
assert response.status_code == 500
|
||||
assert response.location == url_for('main.user_information', user_id=api_user_active.id, _external=True)
|
||||
mock_user_client.assert_called_once_with('/user/{}/archive'.format(api_user_active.id), data=None)
|
||||
assert not mock_events.called
|
||||
|
||||
@@ -2,6 +2,7 @@ import uuid
|
||||
from unittest.mock import ANY
|
||||
|
||||
from app.event_handlers import (
|
||||
create_archive_user_event,
|
||||
create_email_change_event,
|
||||
create_mobile_number_change_event,
|
||||
on_user_logged_in,
|
||||
@@ -51,3 +52,18 @@ def test_create_mobile_number_change_event_calls_events_api(app_, mock_events):
|
||||
'updated_by_id': updated_by_id,
|
||||
'original_mobile_number': '07700900000',
|
||||
'new_mobile_number': '07700900999'})
|
||||
|
||||
|
||||
def test_create_archive_user_event_calls_events_api(app_, mock_events):
|
||||
user_id = str(uuid.uuid4())
|
||||
archived_by_id = str(uuid.uuid4())
|
||||
|
||||
with app_.test_request_context():
|
||||
create_archive_user_event(user_id, archived_by_id)
|
||||
|
||||
mock_events.assert_called_with('archive_user',
|
||||
{'browser_fingerprint':
|
||||
{'browser': ANY, 'version': ANY, 'platform': ANY, 'user_agent_string': ''},
|
||||
'ip_address': ANY,
|
||||
'user_id': user_id,
|
||||
'archived_by_id': archived_by_id})
|
||||
|
||||
Reference in New Issue
Block a user