dnscms: better organizer chooser, fixes slugs for organizers, better slugs
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user