Files
notifications-admin/tests/app/test_event_handlers.py

132 lines
4.0 KiB
Python

import uuid
from unittest.mock import ANY
from app.event_handlers import (
create_add_user_to_service_event,
create_archive_service_event,
create_archive_user_event,
create_email_change_event,
create_mobile_number_change_event,
create_remove_user_from_service_event,
create_resume_service_event,
create_set_user_permissions_event,
create_suspend_service_event,
on_user_logged_in,
)
from app.models.user import User
def event_dict(**extra):
return {
"browser_fingerprint": {
"browser": ANY,
"version": ANY,
"platform": ANY,
"user_agent_string": "",
},
"ip_address": ANY,
**extra,
}
def test_on_user_logged_in_calls_events_api(
client_request, api_user_active, mock_events
):
on_user_logged_in("_notify_admin", User(api_user_active))
mock_events.assert_called_with(
"sucessful_login", event_dict(user_id=str(api_user_active["id"]))
)
def test_create_email_change_event_calls_events_api(client_request, mock_events):
kwargs = {
"user_id": str(uuid.uuid4()),
"updated_by_id": str(uuid.uuid4()),
"original_email_address": "original@example.com",
"new_email_address": "new@example.com",
}
create_email_change_event(**kwargs)
mock_events.assert_called_with("update_user_email", event_dict(**kwargs))
def test_create_add_user_to_service_event_calls_events_api(client_request, mock_events):
kwargs = {
"user_id": str(uuid.uuid4()),
"invited_by_id": str(uuid.uuid4()),
"service_id": str(uuid.uuid4()),
"ui_permissions": {"manage_templates"},
}
create_add_user_to_service_event(**kwargs)
mock_events.assert_called_with("add_user_to_service", event_dict(**kwargs))
def test_create_remove_user_from_service_event_calls_events_api(
client_request, mock_events
):
kwargs = {
"user_id": str(uuid.uuid4()),
"removed_by_id": str(uuid.uuid4()),
"service_id": str(uuid.uuid4()),
}
create_remove_user_from_service_event(**kwargs)
mock_events.assert_called_with("remove_user_from_service", event_dict(**kwargs))
def test_create_mobile_number_change_event_calls_events_api(
client_request, mock_events
):
kwargs = {
"user_id": str(uuid.uuid4()),
"updated_by_id": str(uuid.uuid4()),
"original_mobile_number": "2028675304",
"new_mobile_number": "2028675309",
}
create_mobile_number_change_event(**kwargs)
mock_events.assert_called_with("update_user_mobile_number", event_dict(**kwargs))
def test_create_archive_user_event_calls_events_api(client_request, mock_events):
kwargs = {"user_id": str(uuid.uuid4()), "archived_by_id": str(uuid.uuid4())}
create_archive_user_event(**kwargs)
mock_events.assert_called_with("archive_user", event_dict(**kwargs))
def test_suspend_service(client_request, mock_events):
kwargs = {"service_id": str(uuid.uuid4()), "suspended_by_id": str(uuid.uuid4())}
create_suspend_service_event(**kwargs)
mock_events.assert_called_with("suspend_service", event_dict(**kwargs))
def test_archive_service(client_request, mock_events):
kwargs = {"service_id": str(uuid.uuid4()), "archived_by_id": str(uuid.uuid4())}
create_archive_service_event(**kwargs)
mock_events.assert_called_with("archive_service", event_dict(**kwargs))
def test_resume_service(client_request, mock_events):
kwargs = {"service_id": str(uuid.uuid4()), "resumed_by_id": str(uuid.uuid4())}
create_resume_service_event(**kwargs)
mock_events.assert_called_with("resume_service", event_dict(**kwargs))
def test_set_user_permissions(client_request, mock_events):
kwargs = {
"user_id": str(uuid.uuid4()),
"service_id": str(uuid.uuid4()),
"original_ui_permissions": set("manage_templates"),
"new_ui_permissions": set("view_activity"),
"set_by_id": str(uuid.uuid4()),
}
create_set_user_permissions_event(**kwargs)
mock_events.assert_called_with("set_user_permissions", event_dict(**kwargs))