dnscms: better organizer chooser, fixes slugs for organizers, better slugs

This commit is contained in:
2026-05-26 02:24:42 +02:00
parent ec94d82863
commit 7b84b2d480
8 changed files with 121 additions and 3 deletions
+24
View File
@@ -14,6 +14,7 @@ from events.models import (
EventOrganizerLink,
EventPage,
)
from events.views import EventOrganizerCreationForm
from tests.conftest import (
AssociationPageFactory,
CustomImageFactory,
@@ -118,6 +119,29 @@ def test_eventoccurrence_clean_promotes_matching_custom_text_to_venue(event_inde
assert occurrence.venue_custom == ""
def test_event_organizer_creation_form_auto_slugifies_name(db):
form = EventOrganizerCreationForm(data={"name": "Forening for ÆØÅ", "external_url": ""})
assert form.is_valid(), form.errors
organizer = form.save()
assert organizer.pk is not None
assert organizer.name == "Forening for ÆØÅ"
assert organizer.slug == "forening-for-aeoa"
def test_event_organizer_creation_form_keeps_explicit_slug(db):
organizer = EventOrganizer(name="Forening", slug="custom-slug")
form = EventOrganizerCreationForm(
data={"name": "Forening", "external_url": ""}, instance=organizer
)
assert form.is_valid(), form.errors
organizer = form.save()
assert organizer.slug == "custom-slug"
def test_eventoccurrence_clean_keeps_custom_text_when_no_venue_matches(event_index):
event = EventPageFactory(parent=event_index)
occurrence = EventOccurrence(
+41
View File
@@ -0,0 +1,41 @@
import pytest
from dnscms.utils import slugify
from events.models import EventCategory, EventOrganizer
from tests.conftest import GenericPageFactory
def test_slugify_transliterates_norwegian_letters():
assert slugify("Bjørn") == "bjorn"
assert slugify("Møterom") == "moterom"
assert slugify("Forening for ÆØÅ") == "forening-for-aeoa"
def test_slugify_is_idempotent_on_ascii():
assert slugify("already-clean-slug") == "already-clean-slug"
def test_page_save_transliterates_unicode_in_slug(home_page):
page = GenericPageFactory(parent=home_page, title="Møterom", slug="møterom")
assert page.slug == "moterom"
def test_page_save_leaves_clean_slug_untouched(home_page):
page = GenericPageFactory(parent=home_page, title="Om oss", slug="om-oss")
assert page.slug == "om-oss"
@pytest.mark.django_db
def test_event_organizer_save_transliterates_unicode_in_slug():
organizer = EventOrganizer.objects.create(name="Bjørn", slug="bjørn")
assert organizer.slug == "bjorn"
@pytest.mark.django_db
def test_event_category_save_transliterates_unicode_in_slug():
category = EventCategory.objects.create(name="Mørkerom", slug="mørkerom")
assert category.slug == "morkerom"