mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-23 17:51:09 -05:00
140 lines
4.5 KiB
Python
140 lines
4.5 KiB
Python
"""
|
|
Tests for standardized message utilities.
|
|
|
|
These tests verify that message helper functions generate
|
|
consistent, user-friendly messages.
|
|
"""
|
|
|
|
import pytest
|
|
|
|
from apps.core.utils.messages import (
|
|
confirm_delete,
|
|
error_not_found,
|
|
error_permission,
|
|
error_validation,
|
|
info_no_changes,
|
|
success_created,
|
|
success_deleted,
|
|
success_updated,
|
|
warning_unsaved,
|
|
)
|
|
|
|
|
|
class TestSuccessMessages:
|
|
"""Tests for success message helpers."""
|
|
|
|
def test_success_created_basic(self):
|
|
"""Should generate basic created message."""
|
|
message = success_created("Park")
|
|
assert "Park" in message
|
|
assert "created" in message.lower()
|
|
|
|
def test_success_created_with_name(self):
|
|
"""Should include object name when provided."""
|
|
message = success_created("Park", "Disneyland")
|
|
assert "Disneyland" in message
|
|
|
|
def test_success_created_custom(self):
|
|
"""Should use custom message when provided."""
|
|
message = success_created("Park", custom_message="Your park is ready!")
|
|
assert message == "Your park is ready!"
|
|
|
|
def test_success_updated_basic(self):
|
|
"""Should generate basic updated message."""
|
|
message = success_updated("Park")
|
|
assert "Park" in message
|
|
assert "updated" in message.lower()
|
|
|
|
def test_success_updated_with_name(self):
|
|
"""Should include object name when provided."""
|
|
message = success_updated("Park", "Disneyland")
|
|
assert "Disneyland" in message
|
|
|
|
def test_success_deleted_basic(self):
|
|
"""Should generate basic deleted message."""
|
|
message = success_deleted("Park")
|
|
assert "Park" in message
|
|
assert "deleted" in message.lower()
|
|
|
|
def test_success_deleted_with_name(self):
|
|
"""Should include object name when provided."""
|
|
message = success_deleted("Park", "Old Park")
|
|
assert "Old Park" in message
|
|
|
|
|
|
class TestErrorMessages:
|
|
"""Tests for error message helpers."""
|
|
|
|
def test_error_validation_generic(self):
|
|
"""Should generate generic validation error."""
|
|
message = error_validation()
|
|
assert "validation" in message.lower() or "invalid" in message.lower()
|
|
|
|
def test_error_validation_with_field(self):
|
|
"""Should include field name when provided."""
|
|
message = error_validation("email")
|
|
assert "email" in message.lower()
|
|
|
|
def test_error_validation_custom(self):
|
|
"""Should use custom message when provided."""
|
|
message = error_validation(custom_message="Email format is invalid")
|
|
assert message == "Email format is invalid"
|
|
|
|
def test_error_not_found_basic(self):
|
|
"""Should generate not found message."""
|
|
message = error_not_found("Park")
|
|
assert "Park" in message
|
|
assert "not found" in message.lower() or "could not" in message.lower()
|
|
|
|
def test_error_permission_basic(self):
|
|
"""Should generate permission denied message."""
|
|
message = error_permission()
|
|
assert "permission" in message.lower() or "authorized" in message.lower()
|
|
|
|
def test_error_permission_with_action(self):
|
|
"""Should include action when provided."""
|
|
message = error_permission("delete this park")
|
|
assert "delete" in message.lower()
|
|
|
|
|
|
class TestWarningMessages:
|
|
"""Tests for warning message helpers."""
|
|
|
|
def test_warning_unsaved(self):
|
|
"""Should generate unsaved changes warning."""
|
|
message = warning_unsaved()
|
|
assert "unsaved" in message.lower() or "changes" in message.lower()
|
|
|
|
|
|
class TestInfoMessages:
|
|
"""Tests for info message helpers."""
|
|
|
|
def test_info_no_changes(self):
|
|
"""Should generate no changes message."""
|
|
message = info_no_changes()
|
|
assert "no changes" in message.lower() or "nothing" in message.lower()
|
|
|
|
|
|
class TestConfirmMessages:
|
|
"""Tests for confirmation message helpers."""
|
|
|
|
def test_confirm_delete_basic(self):
|
|
"""Should generate delete confirmation message."""
|
|
message = confirm_delete("Park")
|
|
assert "Park" in message
|
|
assert "delete" in message.lower()
|
|
|
|
def test_confirm_delete_with_name(self):
|
|
"""Should include object name when provided."""
|
|
message = confirm_delete("Park", "Disneyland")
|
|
assert "Disneyland" in message
|
|
|
|
def test_confirm_delete_warning(self):
|
|
"""Should include warning about irreversibility."""
|
|
message = confirm_delete("Park")
|
|
assert (
|
|
"cannot be undone" in message.lower()
|
|
or "permanent" in message.lower()
|
|
or "sure" in message.lower()
|
|
)
|