Files
mandelstudio/mandelstudio/tests/test_contact_form_routing.py

38 lines
1.3 KiB
Python

from django.contrib.auth import get_user_model
from django.test import SimpleTestCase, TestCase
from django.urls import resolve
from ocyan.plugin.contact_form.entrypoint import SHOP_BASE_URL
from contact_form.views import post_contact_form
from mandelstudio.models import ContactMessage
from mandelstudio.wagtail_hooks import SuperuserOnlyPermissionPolicy
class ContactFormRoutingTests(SimpleTestCase):
def test_shop_contact_form_uses_project_handler(self):
match = resolve(f"/{SHOP_BASE_URL}/contact-form/")
self.assertIs(match.func, post_contact_form)
class ContactMessagePermissionPolicyTests(TestCase):
def test_only_superusers_have_contact_message_permissions(self):
user_model = get_user_model()
superuser = user_model.objects.create_superuser(
"contact-superuser",
"superuser@example.com",
"password",
)
staff_user = user_model.objects.create_user(
"contact-staff",
"staff@example.com",
"password",
is_staff=True,
)
policy = SuperuserOnlyPermissionPolicy(ContactMessage)
self.assertTrue(policy.user_has_permission(superuser, "view"))
self.assertFalse(policy.user_has_permission(staff_user, "view"))
self.assertFalse(policy.user_has_any_permission(staff_user, {"view", "change"}))