You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
feo-homepage/core/tests.py

65 lines
2.6 KiB

from datetime import date, timedelta
from django.test import TestCase
from wagtail.models import Page, Site
from core.models import EventIndexPage, EventPage, HomePage
class EventIndexPageTemplateTests(TestCase):
@classmethod
def setUpTestData(cls):
default_site = Site.objects.filter(is_default_site=True).first()
if default_site:
cls.home_page = default_site.root_page.specific
default_site.hostname = 'testserver'
default_site.site_name = 'Test site'
default_site.save()
else:
root_page = Page.get_first_root_node()
cls.home_page = HomePage(title='Home', slug='home')
root_page.add_child(instance=cls.home_page)
cls.home_page.save_revision().publish()
Site.objects.create(
hostname='testserver',
root_page=cls.home_page,
is_default_site=True,
site_name='Test site',
)
cls.index_page = EventIndexPage(title='Events', slug='events-overview')
cls.home_page.add_child(instance=cls.index_page)
cls.index_page.save_revision().publish()
def test_event_index_page_renders_enhanced_timeline_layout(self):
event_page = EventPage(
title='Spring Academy',
slug='spring-academy',
subtitle='Music and masterclasses',
start_date=date.today() + timedelta(days=14),
end_date=date.today() + timedelta(days=16),
location_name='Konzerthaus',
location_street='Street 1',
location_city='10115 Berlin',
show_in_event_calendar=True,
is_partner_event=True,
registration_start_date=date.today(),
)
self.index_page.add_child(instance=event_page)
event_page.save_revision().publish()
response = self.client.get(self.index_page.url)
self.assertContains(response, 'event-index-timeline')
self.assertContains(response, 'timeline-page-hero')
self.assertContains(response, 'event-timeline-card')
self.assertContains(response, 'event-timeline-placeholder')
self.assertContains(response, 'Partner Event')
self.assertContains(response, 'Zur Anmeldung')
self.assertContains(response, 'Konzerthaus')
def test_event_index_page_shows_empty_state_without_events(self):
response = self.client.get(self.index_page.url)
self.assertContains(response, 'timeline-empty-state')
self.assertContains(response, 'Zurzeit sind keine Veranstaltungen geplant.')