2019-04-03 11:47:46 +01:00
|
|
|
import uuid
|
2016-04-27 16:39:17 +01:00
|
|
|
from unittest.mock import ANY
|
|
|
|
|
|
2025-07-17 01:00:00 -07:00
|
|
|
from app.enums import ServicePermission
|
2019-04-03 11:47:46 +01:00
|
|
|
from app.event_handlers import (
|
2021-03-05 12:19:36 +00:00
|
|
|
create_add_user_to_service_event,
|
2021-07-08 15:30:31 +01:00
|
|
|
create_archive_service_event,
|
2019-05-22 14:05:19 +01:00
|
|
|
create_archive_user_event,
|
2019-04-03 11:47:46 +01:00
|
|
|
create_email_change_event,
|
|
|
|
|
create_mobile_number_change_event,
|
2020-03-10 13:18:32 +00:00
|
|
|
create_remove_user_from_service_event,
|
2021-07-12 16:00:16 +01:00
|
|
|
create_resume_service_event,
|
2021-07-15 11:57:33 +01:00
|
|
|
create_set_user_permissions_event,
|
2021-07-08 15:20:24 +01:00
|
|
|
create_suspend_service_event,
|
2019-04-03 11:47:46 +01:00
|
|
|
on_user_logged_in,
|
|
|
|
|
)
|
2019-05-23 15:27:35 +01:00
|
|
|
from app.models.user import User
|
2016-04-27 16:39:17 +01:00
|
|
|
|
|
|
|
|
|
2021-07-08 17:14:56 +01:00
|
|
|
def event_dict(**extra):
|
|
|
|
|
return {
|
2023-08-25 09:12:23 -07:00
|
|
|
"browser_fingerprint": {
|
|
|
|
|
"browser": ANY,
|
|
|
|
|
"version": ANY,
|
|
|
|
|
"platform": ANY,
|
|
|
|
|
"user_agent_string": "",
|
|
|
|
|
},
|
|
|
|
|
"ip_address": ANY,
|
|
|
|
|
**extra,
|
2021-07-08 17:14:56 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2023-08-25 09:12:23 -07:00
|
|
|
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))
|
2021-07-08 17:14:56 +01:00
|
|
|
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with(
|
|
|
|
|
"sucessful_login", event_dict(user_id=str(api_user_active["id"]))
|
|
|
|
|
)
|
2019-04-03 11:47:46 +01:00
|
|
|
|
|
|
|
|
|
2022-01-04 18:33:23 +00:00
|
|
|
def test_create_email_change_event_calls_events_api(client_request, mock_events):
|
2021-07-12 15:37:22 +01:00
|
|
|
kwargs = {
|
|
|
|
|
"user_id": str(uuid.uuid4()),
|
|
|
|
|
"updated_by_id": str(uuid.uuid4()),
|
2023-08-25 09:12:23 -07:00
|
|
|
"original_email_address": "original@example.com",
|
|
|
|
|
"new_email_address": "new@example.com",
|
2021-07-12 15:37:22 +01:00
|
|
|
}
|
2019-04-03 11:47:46 +01:00
|
|
|
|
2021-07-12 15:37:22 +01:00
|
|
|
create_email_change_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("update_user_email", event_dict(**kwargs))
|
2019-04-03 11:47:46 +01:00
|
|
|
|
|
|
|
|
|
2022-01-04 18:33:23 +00:00
|
|
|
def test_create_add_user_to_service_event_calls_events_api(client_request, mock_events):
|
2021-07-12 15:37:22 +01:00
|
|
|
kwargs = {
|
|
|
|
|
"user_id": str(uuid.uuid4()),
|
|
|
|
|
"invited_by_id": str(uuid.uuid4()),
|
2021-07-15 12:13:42 +01:00
|
|
|
"service_id": str(uuid.uuid4()),
|
2025-07-17 01:00:00 -07:00
|
|
|
"ui_permissions": {ServicePermission.MANAGE_TEMPLATES},
|
2021-07-12 15:37:22 +01:00
|
|
|
}
|
2021-03-05 12:19:36 +00:00
|
|
|
|
2021-07-12 15:37:22 +01:00
|
|
|
create_add_user_to_service_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("add_user_to_service", event_dict(**kwargs))
|
2021-03-05 12:19:36 +00:00
|
|
|
|
|
|
|
|
|
2023-08-25 09:12:23 -07:00
|
|
|
def test_create_remove_user_from_service_event_calls_events_api(
|
|
|
|
|
client_request, mock_events
|
|
|
|
|
):
|
2021-07-12 15:37:22 +01:00
|
|
|
kwargs = {
|
|
|
|
|
"user_id": str(uuid.uuid4()),
|
|
|
|
|
"removed_by_id": str(uuid.uuid4()),
|
2023-08-25 09:12:23 -07:00
|
|
|
"service_id": str(uuid.uuid4()),
|
2021-07-12 15:37:22 +01:00
|
|
|
}
|
2020-03-10 13:18:32 +00:00
|
|
|
|
2021-07-12 15:37:22 +01:00
|
|
|
create_remove_user_from_service_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("remove_user_from_service", event_dict(**kwargs))
|
2020-03-10 13:18:32 +00:00
|
|
|
|
|
|
|
|
|
2023-08-25 09:12:23 -07:00
|
|
|
def test_create_mobile_number_change_event_calls_events_api(
|
|
|
|
|
client_request, mock_events
|
|
|
|
|
):
|
2021-07-12 15:37:22 +01:00
|
|
|
kwargs = {
|
|
|
|
|
"user_id": str(uuid.uuid4()),
|
|
|
|
|
"updated_by_id": str(uuid.uuid4()),
|
2023-08-25 09:12:23 -07:00
|
|
|
"original_mobile_number": "2028675304",
|
|
|
|
|
"new_mobile_number": "2028675309",
|
2021-07-12 15:37:22 +01:00
|
|
|
}
|
2019-04-03 11:47:46 +01:00
|
|
|
|
2021-07-12 15:37:22 +01:00
|
|
|
create_mobile_number_change_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("update_user_mobile_number", event_dict(**kwargs))
|
2019-05-22 14:05:19 +01:00
|
|
|
|
|
|
|
|
|
2022-01-04 18:33:23 +00:00
|
|
|
def test_create_archive_user_event_calls_events_api(client_request, mock_events):
|
2023-08-25 09:12:23 -07:00
|
|
|
kwargs = {"user_id": str(uuid.uuid4()), "archived_by_id": str(uuid.uuid4())}
|
2019-05-22 14:05:19 +01:00
|
|
|
|
2021-07-12 15:37:22 +01:00
|
|
|
create_archive_user_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("archive_user", event_dict(**kwargs))
|
2021-03-04 12:09:28 +00:00
|
|
|
|
|
|
|
|
|
2022-01-04 18:33:23 +00:00
|
|
|
def test_suspend_service(client_request, mock_events):
|
2023-08-25 09:12:23 -07:00
|
|
|
kwargs = {"service_id": str(uuid.uuid4()), "suspended_by_id": str(uuid.uuid4())}
|
2021-07-08 15:20:24 +01:00
|
|
|
|
2021-07-12 15:37:22 +01:00
|
|
|
create_suspend_service_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("suspend_service", event_dict(**kwargs))
|
2021-07-08 15:30:31 +01:00
|
|
|
|
|
|
|
|
|
2022-01-04 18:33:23 +00:00
|
|
|
def test_archive_service(client_request, mock_events):
|
2023-08-25 09:12:23 -07:00
|
|
|
kwargs = {"service_id": str(uuid.uuid4()), "archived_by_id": str(uuid.uuid4())}
|
2021-07-08 15:30:31 +01:00
|
|
|
|
2021-07-12 15:37:22 +01:00
|
|
|
create_archive_service_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("archive_service", event_dict(**kwargs))
|
2021-07-12 16:00:16 +01:00
|
|
|
|
|
|
|
|
|
2022-01-04 18:33:23 +00:00
|
|
|
def test_resume_service(client_request, mock_events):
|
2023-08-25 09:12:23 -07:00
|
|
|
kwargs = {"service_id": str(uuid.uuid4()), "resumed_by_id": str(uuid.uuid4())}
|
2021-07-12 16:00:16 +01:00
|
|
|
|
|
|
|
|
create_resume_service_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("resume_service", event_dict(**kwargs))
|
2021-07-15 11:57:33 +01:00
|
|
|
|
|
|
|
|
|
2022-01-04 18:33:23 +00:00
|
|
|
def test_set_user_permissions(client_request, mock_events):
|
2021-07-15 11:57:33 +01:00
|
|
|
kwargs = {
|
|
|
|
|
"user_id": str(uuid.uuid4()),
|
|
|
|
|
"service_id": str(uuid.uuid4()),
|
2025-07-17 01:00:00 -07:00
|
|
|
"original_ui_permissions": {ServicePermission.MANAGE_TEMPLATES},
|
2025-07-21 14:24:11 -07:00
|
|
|
"new_ui_permissions": {ServicePermission.VIEW_ACTIVITY},
|
2021-07-15 11:57:33 +01:00
|
|
|
"set_by_id": str(uuid.uuid4()),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
create_set_user_permissions_event(**kwargs)
|
2023-08-25 09:12:23 -07:00
|
|
|
mock_events.assert_called_with("set_user_permissions", event_dict(**kwargs))
|