Adds RoutablePage test

This commit is contained in:
Dario Marcelino 2017-12-27 16:19:51 +00:00
parent a1c90e9e97
commit e6488400c2
3 changed files with 47 additions and 3 deletions

View file

@ -1,6 +1,8 @@
# coding: utf-8
from django.db import models
from django.http import HttpResponse
from modelcluster.fields import ParentalKey
from wagtail.contrib.wagtailroutablepage.models import RoutablePageMixin, route
from wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanel, FieldRowPanel, InlinePanel, StreamFieldPanel
from wagtail.wagtailcore import blocks
from wagtail.wagtailcore.fields import StreamField
@ -24,9 +26,11 @@ class TestSlugPage1(WagtailPage):
class TestSlugPage2(WagtailPage):
pass
class TestSlugPage1Subclass(TestSlugPage1):
pass
class PatchTestPage(WagtailPage):
description = models.CharField(max_length=50)
@ -193,3 +197,13 @@ class InlinePanelPage(WagtailPage):
content_panels = [
InlinePanel('related_page_model')
]
class RoutablePageTest(RoutablePageMixin, WagtailPage):
@route(r'^archive/year/1984/$')
def archive_for_1984(self, request):
return HttpResponse("we were always at war with eastasia")
@route(r'^archive/year/(\d+)/$')
def archive_by_year(self, request, year):
return HttpResponse("ARCHIVE BY YEAR: " + str(year))

View file

@ -705,6 +705,18 @@ class WagtailModeltranslationTest(WagtailModeltranslationTestBase):
},
},
},
'routable_page': {
'model': models.RoutablePageTest,
'kwargs': {'title': 'Routable Page', 'live': True,
'slug_de': 'routing-de-03', 'slug_en': 'routing-en-03'},
'children': {
'grandchild1': {
'model': models.TestSlugPage1,
'kwargs': {'title': 'grandchild1 routing',
'slug_de': 'routing-de-0301', 'slug_en': 'routing-en-0301'},
},
},
},
},
}
page_factory.create_page_tree(site_pages)
@ -712,13 +724,28 @@ class WagtailModeltranslationTest(WagtailModeltranslationTestBase):
root_page = site_pages['instance']
page_0101 = site_pages['children']['child1']['children']['grandchild1']['instance']
page_0201 = site_pages['children']['child2']['children']['grandchild1']['instance']
page_0301 = site_pages['children']['routable_page']['children']['grandchild1']['instance']
self.check_route_request(root_page, ['routing-de-01', 'routing-de-0101'], page_0101)
self.check_route_request(root_page, ['routing-de-02', 'routing-de-0201'], page_0201)
# routable page test
routable_page = site_pages['children']['routable_page']['instance']
view, args, kwargs = routable_page.resolve_subpage('/archive/year/2014/')
self.assertEqual(view, routable_page.archive_by_year)
self.assertEqual(args, ('2014',))
self.assertEqual(kwargs, {})
self.check_route_request(root_page, ['routing-de-03', 'routing-de-0301'], page_0301)
trans_real.activate('en')
# assert translated slugs fetch the correct page
self.check_route_request(root_page, ['routing-en-01', 'routing-en-0101'], page_0101)
# in the absence of translated slugs assert the default ones work
self.check_route_request(root_page, ['routing-de-02', 'routing-de-0201'], page_0201)
view, args, kwargs = routable_page.resolve_subpage('/archive/year/2014/')
self.assertEqual(view, routable_page.archive_by_year)
self.assertEqual(args, ('2014',))
self.assertEqual(kwargs, {})
self.check_route_request(root_page, ['routing-en-03', 'routing-en-0301'], page_0301)

View file

@ -5,9 +5,7 @@ from wagtail_modeltranslation.tests.models import TestRootPage, TestSlugPage1, T
PatchTestSnippet, FieldPanelPage, ImageChooserPanelPage, FieldRowPanelPage, MultiFieldPanelPage, InlinePanelPage, \
FieldPanelSnippet, ImageChooserPanelSnippet, FieldRowPanelSnippet, MultiFieldPanelSnippet, PageInlineModel, \
BaseInlineModel, StreamFieldPanelPage, StreamFieldPanelSnippet, SnippetInlineModel, InlinePanelSnippet, \
TestSlugPage1Subclass
from wagtail.wagtailcore.models import Page
TestSlugPage1Subclass, RoutablePageTest
# Wagtail Models
@ -107,3 +105,8 @@ class InlinePanelModelTranslationOptions(TranslationOptions):
translator.register(InlinePanelSnippet, InlinePanelModelTranslationOptions)
@register(RoutablePageTest)
class RoutablePageTestTranslationOptions(TranslationOptions):
fields = ()