kopia lustrzana https://github.com/wagtail/wagtail
Add tests for urlconfs that have wagtail_serve at a non-root path
rodzic
07a48abf58
commit
8f7cb58f0f
|
@ -0,0 +1,19 @@
|
|||
"""An alternative urlconf module where Wagtail front-end URLs
|
||||
are rooted at '/site/' rather than '/'"""
|
||||
|
||||
from django.conf.urls import patterns, include, url
|
||||
|
||||
from wagtail.wagtailcore import urls as wagtail_urls
|
||||
from wagtail.wagtailadmin import urls as wagtailadmin_urls
|
||||
from wagtail.wagtaildocs import urls as wagtaildocs_urls
|
||||
from wagtail.wagtailimages import urls as wagtailimages_urls
|
||||
from wagtail.wagtailsearch import urls as wagtailsearch_urls
|
||||
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^admin/', include(wagtailadmin_urls)),
|
||||
url(r'^search/', include(wagtailsearch_urls)),
|
||||
url(r'^documents/', include(wagtaildocs_urls)),
|
||||
url(r'^images/', include(wagtailimages_urls)),
|
||||
url(r'^site/', include(wagtail_urls)),
|
||||
)
|
|
@ -1,6 +1,7 @@
|
|||
import warnings
|
||||
|
||||
from django.test import TestCase, Client
|
||||
from django.test.utils import override_settings
|
||||
from django.http import HttpRequest, Http404
|
||||
|
||||
from wagtail.utils.deprecation import RemovedInWagtail06Warning
|
||||
|
@ -100,6 +101,16 @@ class TestSiteRouting(TestCase):
|
|||
class TestRouting(TestCase):
|
||||
fixtures = ['test.json']
|
||||
|
||||
# need to clear urlresolver caches before/after tests, because we override ROOT_URLCONF
|
||||
# in some tests here
|
||||
def setUp(self):
|
||||
from django.core.urlresolvers import clear_url_caches
|
||||
clear_url_caches()
|
||||
|
||||
def tearDown(self):
|
||||
from django.core.urlresolvers import clear_url_caches
|
||||
clear_url_caches()
|
||||
|
||||
def test_urls(self):
|
||||
default_site = Site.objects.get(is_default_site=True)
|
||||
homepage = Page.objects.get(url_path='/home/')
|
||||
|
@ -134,6 +145,21 @@ class TestRouting(TestCase):
|
|||
self.assertEqual(christmas_page.relative_url(default_site), 'http://events.example.com/christmas/')
|
||||
self.assertEqual(christmas_page.relative_url(events_site), '/christmas/')
|
||||
|
||||
@override_settings(ROOT_URLCONF='wagtail.tests.non_root_urls')
|
||||
def test_urls_with_non_root_urlconf(self):
|
||||
default_site = Site.objects.get(is_default_site=True)
|
||||
homepage = Page.objects.get(url_path='/home/')
|
||||
christmas_page = Page.objects.get(url_path='/home/events/christmas/')
|
||||
|
||||
# Basic installation only has one site configured, so page.url will return local URLs
|
||||
self.assertEqual(homepage.full_url, 'http://localhost/site/')
|
||||
self.assertEqual(homepage.url, '/site/')
|
||||
self.assertEqual(homepage.relative_url(default_site), '/site/')
|
||||
|
||||
self.assertEqual(christmas_page.full_url, 'http://localhost/site/events/christmas/')
|
||||
self.assertEqual(christmas_page.url, '/site/events/christmas/')
|
||||
self.assertEqual(christmas_page.relative_url(default_site), '/site/events/christmas/')
|
||||
|
||||
def test_request_routing(self):
|
||||
homepage = Page.objects.get(url_path='/home/')
|
||||
christmas_page = EventPage.objects.get(url_path='/home/events/christmas/')
|
||||
|
@ -179,6 +205,16 @@ class TestServeView(TestCase):
|
|||
from django.core.cache import cache
|
||||
cache.delete('wagtail_site_root_paths')
|
||||
|
||||
# also need to clear urlresolver caches before/after tests, because we override
|
||||
# ROOT_URLCONF in some tests here
|
||||
from django.core.urlresolvers import clear_url_caches
|
||||
clear_url_caches()
|
||||
|
||||
def tearDown(self):
|
||||
from django.core.urlresolvers import clear_url_caches
|
||||
clear_url_caches()
|
||||
|
||||
|
||||
def test_serve(self):
|
||||
response = self.client.get('/events/christmas/')
|
||||
|
||||
|
@ -190,6 +226,18 @@ class TestServeView(TestCase):
|
|||
self.assertContains(response, '<h1>Christmas</h1>')
|
||||
self.assertContains(response, '<h2>Event</h2>')
|
||||
|
||||
@override_settings(ROOT_URLCONF='wagtail.tests.non_root_urls')
|
||||
def test_serve_with_non_root_urls(self):
|
||||
response = self.client.get('/site/events/christmas/')
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.templates[0].name, 'tests/event_page.html')
|
||||
christmas_page = EventPage.objects.get(url_path='/home/events/christmas/')
|
||||
self.assertEqual(response.context['self'], christmas_page)
|
||||
|
||||
self.assertContains(response, '<h1>Christmas</h1>')
|
||||
self.assertContains(response, '<h2>Event</h2>')
|
||||
|
||||
def test_serve_unknown_page_returns_404(self):
|
||||
response = self.client.get('/events/quinquagesima/')
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
|
Ładowanie…
Reference in New Issue