kopia lustrzana https://github.com/wagtail/wagtail
update tests for deprecated SiteMiddleware
rodzic
f745aae9d0
commit
38b304105a
wagtail
contrib
core/tests
images/tests
tests
|
@ -3,7 +3,7 @@ Tests for the search box in the admin side menu, and the custom search hooks.
|
|||
"""
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.template import Context, Template
|
||||
from django.test import RequestFactory, TestCase
|
||||
from django.test import RequestFactory, TestCase, override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
from wagtail.admin.utils import user_has_any_page_permission
|
||||
|
@ -14,17 +14,23 @@ from wagtail.tests.utils import WagtailTestUtils
|
|||
class BaseSearchAreaTestCase(WagtailTestUtils, TestCase):
|
||||
rf = RequestFactory()
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def search_other(self, current_url='/admin/', data=None):
|
||||
request = self.rf.get(current_url, data=data)
|
||||
request.user = self.user
|
||||
request.site = Site.objects.get()
|
||||
site = Site.objects.get()
|
||||
request.META['HTTP_HOST'] = site.hostname
|
||||
request.META['SERVER_PORT'] = site.port
|
||||
template = Template("{% load wagtailadmin_tags %}{% search_other %}")
|
||||
return template.render(Context({'request': request}))
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def menu_search(self, current_url='/admin/', data=None):
|
||||
request = self.rf.get(current_url, data=data)
|
||||
request.user = self.user
|
||||
request.site = Site.objects.get()
|
||||
site = Site.objects.get()
|
||||
request.META['HTTP_HOST'] = site.hostname
|
||||
request.META['SERVER_PORT'] = site.port
|
||||
template = Template("{% load wagtailadmin_tags %}{% menu_search %}")
|
||||
return template.render(Context({'request': request}))
|
||||
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.http import HttpRequest
|
||||
from django.template import engines
|
||||
from django.test import TestCase
|
||||
from django.test import TestCase, override_settings
|
||||
|
||||
from wagtail.core.models import PAGE_TEMPLATE_VAR, Page, Site
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestCoreJinja(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
|
@ -28,8 +30,9 @@ class TestCoreJinja(TestCase):
|
|||
def dummy_request(self, user=None):
|
||||
site = Site.objects.get(is_default_site=True)
|
||||
|
||||
request = self.client.get('/')
|
||||
request.site = site
|
||||
request = HttpRequest()
|
||||
request.META['HTTP_HOST'] = site.hostname
|
||||
request.META['SERVER_PORT'] = site.port
|
||||
request.user = user or AnonymousUser()
|
||||
return request
|
||||
|
||||
|
|
|
@ -572,6 +572,7 @@ class TestExplorablePageVisibility(TestCase, WagtailTestUtils):
|
|||
self.assertNotContains(response, """<li class="home"><a href="/admin/pages/4/" class="icon icon-home text-replace">Home</a></li>""")
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestPageCreation(TestCase, WagtailTestUtils):
|
||||
def setUp(self):
|
||||
# Find root page
|
||||
|
@ -1884,6 +1885,7 @@ class TestPageEdit(TestCase, WagtailTestUtils):
|
|||
# Check that a form error was raised
|
||||
self.assertFormError(response, 'form', 'slug', "This slug is already in use")
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def test_preview_on_edit(self):
|
||||
post_data = {
|
||||
'title': "I've been edited!",
|
||||
|
@ -1953,7 +1955,6 @@ class TestPageEdit(TestCase, WagtailTestUtils):
|
|||
# Check that the correct site object has been selected by the site middleware
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, 'tests/simple_page.html')
|
||||
self.assertEqual(response.context['request'].site.hostname, 'childpage.example.com')
|
||||
|
||||
def test_editor_picks_up_direct_model_edits(self):
|
||||
# If a page has no draft edits, the editor should show the version from the live database
|
||||
|
@ -4150,6 +4151,7 @@ class TestChildRelationsOnSuperclass(TestCase, WagtailTestUtils):
|
|||
self.assertContains(response, "alwaysDirty: true")
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestRevisions(TestCase, WagtailTestUtils):
|
||||
fixtures = ['test.json']
|
||||
|
||||
|
@ -4547,6 +4549,7 @@ class TestRevisionsUnscheduleForUnpublishedPages(TestCase, WagtailTestUtils):
|
|||
self.assertIsNone(self.unpublished_event.revisions.get(id=self.unpublished_revision.id).approved_go_live_at)
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestIssue2599(TestCase, WagtailTestUtils):
|
||||
"""
|
||||
When previewing a page on creation, we need to assign it a path value consistent with its
|
||||
|
@ -5205,7 +5208,7 @@ class TestValidationErrorMessages(TestCase, WagtailTestUtils):
|
|||
# Error on title shown in the header message
|
||||
self.assertContains(response, "<li>Title: This field is required.</li>", count=1)
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestDraftAccess(TestCase, WagtailTestUtils):
|
||||
"""Tests for the draft view access restrictions."""
|
||||
|
||||
|
@ -5227,6 +5230,8 @@ class TestDraftAccess(TestCase, WagtailTestUtils):
|
|||
Permission.objects.get(content_type__app_label='wagtailadmin', codename='access_admin')
|
||||
)
|
||||
|
||||
self.site = Site.objects.first()
|
||||
|
||||
def test_draft_access_admin(self):
|
||||
"""Test that admin can view draft."""
|
||||
# Login as admin
|
||||
|
@ -5263,7 +5268,7 @@ class TestDraftAccess(TestCase, WagtailTestUtils):
|
|||
# User can view
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestPreview(TestCase, WagtailTestUtils):
|
||||
fixtures = ['test.json']
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.template import Context, Template
|
||||
from django.test import TestCase
|
||||
from django.test import TestCase, override_settings
|
||||
from django.test.client import RequestFactory
|
||||
from django.urls import reverse
|
||||
|
||||
|
@ -10,8 +10,10 @@ from wagtail.tests.testapp.models import BusinessChild, BusinessIndex
|
|||
from wagtail.tests.utils import WagtailTestUtils
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestUserbarTag(TestCase):
|
||||
def setUp(self):
|
||||
|
||||
self.user = get_user_model().objects.create_superuser(
|
||||
username='test',
|
||||
email='test@email.com',
|
||||
|
@ -22,9 +24,12 @@ class TestUserbarTag(TestCase):
|
|||
def dummy_request(self, user=None):
|
||||
request = RequestFactory().get('/')
|
||||
request.user = user or AnonymousUser()
|
||||
request.site = Site.objects.first()
|
||||
site = Site.objects.first()
|
||||
request.META['HTTP_HOST'] = site.hostname
|
||||
request.META['SERVER_PORT'] = site.port
|
||||
return request
|
||||
|
||||
|
||||
def test_userbar_tag(self):
|
||||
template = Template("{% load wagtailuserbar %}{% wagtailuserbar %}")
|
||||
content = template.render(Context({
|
||||
|
@ -64,6 +69,7 @@ class TestUserbarTag(TestCase):
|
|||
self.assertEqual(content, '')
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestUserbarFrontend(TestCase, WagtailTestUtils):
|
||||
def setUp(self):
|
||||
self.login()
|
||||
|
@ -85,6 +91,7 @@ class TestUserbarFrontend(TestCase, WagtailTestUtils):
|
|||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestUserbarAddLink(TestCase, WagtailTestUtils):
|
||||
fixtures = ['test.json']
|
||||
|
||||
|
@ -118,6 +125,7 @@ class TestUserbarAddLink(TestCase, WagtailTestUtils):
|
|||
self.assertNotContains(response, expected_link)
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestUserbarModeration(TestCase, WagtailTestUtils):
|
||||
def setUp(self):
|
||||
self.login()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from unittest import mock
|
||||
|
||||
from django.test import RequestFactory, TestCase
|
||||
from django.test import RequestFactory, TestCase, override_settings
|
||||
from django.urls.exceptions import NoReverseMatch
|
||||
|
||||
from wagtail.contrib.routable_page.templatetags.wagtailroutablepage_tags import routablepageurl
|
||||
|
@ -150,6 +150,8 @@ class TestRoutablePage(TestCase):
|
|||
|
||||
|
||||
class TestRoutablePageTemplateTag(TestCase):
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def setUp(self):
|
||||
self.home_page = Page.objects.get(id=2)
|
||||
self.routable_page = self.home_page.add_child(instance=RoutablePageTest(
|
||||
|
@ -159,7 +161,9 @@ class TestRoutablePageTemplateTag(TestCase):
|
|||
|
||||
self.rf = RequestFactory()
|
||||
self.request = self.rf.get(self.routable_page.url)
|
||||
self.request.site = Site.find_for_request(self.request)
|
||||
site = Site.find_for_request(self.request)
|
||||
self.request.META['HTTP_HOST'] = site.hostname
|
||||
self.request.META['SERVER_PORT'] = site.port
|
||||
self.context = {'request': self.request}
|
||||
|
||||
def test_templatetag_reverse_index_route(self):
|
||||
|
@ -252,6 +256,7 @@ class TestRoutablePageTemplateTagForSecondSiteAtSameRoot(TestCase):
|
|||
self.assertEqual(url, expected)
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TestRoutablePageTemplateTagForSecondSiteAtDifferentRoot(TestCase):
|
||||
"""
|
||||
When multiple sites exist, relative URLs between such sites should include the domain portion
|
||||
|
@ -274,10 +279,11 @@ class TestRoutablePageTemplateTagForSecondSiteAtDifferentRoot(TestCase):
|
|||
|
||||
self.rf = RequestFactory()
|
||||
self.request = self.rf.get(self.routable_page.url)
|
||||
self.request.site = Site.find_for_request(self.request)
|
||||
self.context = {'request': self.request}
|
||||
|
||||
self.request.site = second_site
|
||||
self.request.META['HTTP_HOST'] = second_site.hostname
|
||||
self.request.META['SERVER_PORT'] = second_site.port
|
||||
|
||||
|
||||
def test_templatetag_reverse_index_route(self):
|
||||
url = routablepageurl(self.context, self.routable_page,
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
from django.http import HttpRequest
|
||||
from django.template import Context, RequestContext, Template, engines
|
||||
from django.test import TestCase
|
||||
from django.test import TestCase, override_settings
|
||||
|
||||
from wagtail.core.models import Page, Site
|
||||
from wagtail.tests.testapp.models import TestSetting
|
||||
from wagtail.tests.utils import WagtailTestUtils
|
||||
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
class TemplateTestCase(TestCase, WagtailTestUtils):
|
||||
def setUp(self):
|
||||
root = Page.objects.first()
|
||||
|
@ -28,8 +30,10 @@ class TemplateTestCase(TestCase, WagtailTestUtils):
|
|||
def get_request(self, site=None):
|
||||
if site is None:
|
||||
site = self.default_site
|
||||
request = self.client.get('/test/', HTTP_HOST=site.hostname)
|
||||
request.site = site
|
||||
#request = self.client.get('/test/', HTTP_HOST=site.hostname)
|
||||
request = HttpRequest()
|
||||
request.META['HTTP_HOST'] = site.hostname
|
||||
request.META['SERVER_PORT'] = site.port
|
||||
return request
|
||||
|
||||
def render(self, request, string, context=None, site=None):
|
||||
|
@ -80,6 +84,9 @@ class TestContextProcessor(TemplateTestCase):
|
|||
request = self.get_request()
|
||||
get_title = '{{ settings.tests.testsetting.title }}'
|
||||
|
||||
# force site query before hand
|
||||
Site.find_for_request(request)
|
||||
|
||||
for i in range(1, 4):
|
||||
with self.assertNumQueries(1):
|
||||
self.assertEqual(
|
||||
|
@ -170,8 +177,10 @@ class TestSettingsJinja(TemplateTestCase):
|
|||
else:
|
||||
site = Site.objects.get(is_default_site=True)
|
||||
|
||||
request = self.client.get('/test/', HTTP_HOST=site.hostname)
|
||||
request.site = site
|
||||
#request = self.client.get('/test/', HTTP_HOST=site.hostname)
|
||||
request = HttpRequest()
|
||||
request.META['HTTP_HOST'] = site.hostname
|
||||
request.META['SERVER_PORT'] = site.port
|
||||
context['request'] = request
|
||||
|
||||
template = self.engine.from_string(string)
|
||||
|
@ -217,8 +226,12 @@ class TestSettingsJinja(TemplateTestCase):
|
|||
# Cant use the default 'self.render()' as it does DB queries to get
|
||||
# site, dummy request
|
||||
site = Site.objects.get(is_default_site=True)
|
||||
request = self.client.get('/test/', HTTP_HOST=site.hostname)
|
||||
request.site = site
|
||||
request = HttpRequest()
|
||||
request.META['HTTP_HOST'] = site.hostname
|
||||
request.META['SERVER_PORT'] = site.port
|
||||
|
||||
# run extra query before hand
|
||||
Site.find_for_request(request)
|
||||
|
||||
for i in range(1, 4):
|
||||
with self.assertNumQueries(1):
|
||||
|
|
|
@ -84,7 +84,7 @@ class TestSitemapGenerator(TestCase):
|
|||
|
||||
sitemap = Sitemap(request)
|
||||
|
||||
with self.assertNumQueries(16):
|
||||
with self.assertNumQueries(17):
|
||||
urls = [url['location'] for url in sitemap.get_urls(1, django_site, req_protocol)]
|
||||
|
||||
self.assertIn('http://localhost/', urls) # Homepage
|
||||
|
|
|
@ -21,7 +21,8 @@ class TestCoreGlobalsAndFilters(TestCase):
|
|||
if request_context:
|
||||
site = Site.objects.get(is_default_site=True)
|
||||
request = self.client.get('/test/', HTTP_HOST=site.hostname)
|
||||
request.site = site
|
||||
#request.META['HTTP_HOST'] = site.hostname
|
||||
#request.META['SERVER_PORT'] = site.port
|
||||
context['request'] = request
|
||||
|
||||
template = self.engine.from_string(string)
|
||||
|
|
|
@ -254,12 +254,15 @@ class TestRouting(TestCase):
|
|||
self.assertEqual(root.relative_url(default_site), None)
|
||||
self.assertEqual(root.get_site(), None)
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def test_urls_with_multiple_sites(self):
|
||||
events_page = Page.objects.get(url_path='/home/events/')
|
||||
events_site = Site.objects.create(hostname='events.example.com', root_page=events_page)
|
||||
|
||||
# An underscore is not valid according to RFC 1034/1035
|
||||
# and will raise a DisallowedHost Exception
|
||||
second_events_site = Site.objects.create(
|
||||
hostname='second_events.example.com', root_page=events_page)
|
||||
hostname='second-events.example.com', root_page=events_page)
|
||||
|
||||
default_site = Site.objects.get(is_default_site=True)
|
||||
homepage = Page.objects.get(url_path='/home/')
|
||||
|
@ -288,17 +291,20 @@ class TestRouting(TestCase):
|
|||
self.assertEqual(christmas_page.get_site(), events_site)
|
||||
|
||||
request = HttpRequest()
|
||||
request.META['HTTP_HOST'] = events_site.hostname
|
||||
request.META['SERVER_PORT'] = events_site.port
|
||||
|
||||
request.site = events_site
|
||||
self.assertEqual(
|
||||
christmas_page.get_url_parts(request=request),
|
||||
(events_site.id, 'http://events.example.com', '/christmas/')
|
||||
)
|
||||
|
||||
request.site = second_events_site
|
||||
request2 = HttpRequest()
|
||||
request2.META['HTTP_HOST'] = second_events_site.hostname
|
||||
request2.META['SERVER_PORT'] = second_events_site.port
|
||||
self.assertEqual(
|
||||
christmas_page.get_url_parts(request=request),
|
||||
(second_events_site.id, 'http://second_events.example.com', '/christmas/')
|
||||
christmas_page.get_url_parts(request=request2),
|
||||
(second_events_site.id, 'http://second-events.example.com', '/christmas/')
|
||||
)
|
||||
|
||||
@override_settings(ROOT_URLCONF='wagtail.tests.non_root_urls')
|
||||
|
@ -335,12 +341,15 @@ class TestRouting(TestCase):
|
|||
(found_page, args, kwargs) = homepage.route(request, ['events', 'christmas'])
|
||||
self.assertEqual(found_page, christmas_page)
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def test_request_serving(self):
|
||||
christmas_page = EventPage.objects.get(url_path='/home/events/christmas/')
|
||||
|
||||
request = HttpRequest()
|
||||
request.user = AnonymousUser()
|
||||
request.site = Site.objects.first()
|
||||
site = Site.objects.first()
|
||||
request.META['HTTP_HOST'] = site.hostname
|
||||
request.META['SERVER_PORT'] = site.port
|
||||
|
||||
response = christmas_page.serve(request)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
@ -367,6 +376,7 @@ class TestRouting(TestCase):
|
|||
# Override CACHES so we don't generate any cache-related SQL queries (tests use DatabaseCache
|
||||
# otherwise) and so cache.get will always return None.
|
||||
@override_settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}})
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def test_request_scope_site_root_paths_cache(self):
|
||||
homepage = Page.objects.get(url_path='/home/')
|
||||
christmas_page = EventPage.objects.get(url_path='/home/events/christmas/')
|
||||
|
@ -383,7 +393,10 @@ class TestRouting(TestCase):
|
|||
|
||||
# with a request, the first call to get_url should issue 1 SQL query
|
||||
request = HttpRequest()
|
||||
with self.assertNumQueries(1):
|
||||
request.META['HTTP_HOST'] = "dummy"
|
||||
request.META['SERVER_PORT'] = "8888"
|
||||
# first call with "balnk" request issues a extra query for the Site.find_for_request() call
|
||||
with self.assertNumQueries(2):
|
||||
self.assertEqual(homepage.get_url(request=request), '/')
|
||||
# subsequent calls should issue no SQL queries
|
||||
with self.assertNumQueries(0):
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from django import template
|
||||
from django.core.cache import cache
|
||||
from django.http import HttpRequest
|
||||
from django.test import TestCase
|
||||
from django.test import TestCase, override_settings
|
||||
from django.urls.exceptions import NoReverseMatch
|
||||
from django.utils.safestring import SafeText
|
||||
|
||||
|
@ -63,6 +63,7 @@ class TestPageUrlTags(TestCase):
|
|||
result = slugurl(context=template.Context({'request': HttpRequest()}), slug='bad-slug-doesnt-exist')
|
||||
self.assertEqual(result, None)
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def test_slugurl_tag_returns_url_for_current_site(self):
|
||||
home_page = Page.objects.get(url_path='/home/')
|
||||
new_home_page = home_page.copy(update_attrs={'title': "New home page", 'slug': 'new-home'})
|
||||
|
@ -72,16 +73,19 @@ class TestPageUrlTags(TestCase):
|
|||
new_christmas_page = Page(title='Christmas', slug='christmas')
|
||||
new_home_page.add_child(instance=new_christmas_page)
|
||||
request = HttpRequest()
|
||||
request.site = second_site
|
||||
request.META['HTTP_HOST'] = second_site.hostname
|
||||
request.META['SERVER_PORT'] = second_site.port
|
||||
url = slugurl(context=template.Context({'request': request}), slug='christmas')
|
||||
self.assertEqual(url, '/christmas/')
|
||||
|
||||
@override_settings(ALLOWED_HOSTS=['*'])
|
||||
def test_slugurl_tag_returns_url_for_other_site(self):
|
||||
home_page = Page.objects.get(url_path='/home/')
|
||||
new_home_page = home_page.copy(update_attrs={'title': "New home page", 'slug': 'new-home'})
|
||||
second_site = Site.objects.create(hostname='site2.example.com', root_page=new_home_page)
|
||||
request = HttpRequest()
|
||||
request.site = second_site
|
||||
request.META['HTTP_HOST'] = second_site.hostname
|
||||
request.META['SERVER_PORT'] = second_site.port
|
||||
# There is no page with this slug on the current site, so this
|
||||
# should return an absolute URL for the page on the first site.
|
||||
url = slugurl(slug='christmas', context=template.Context({'request': request}))
|
||||
|
|
|
@ -42,7 +42,6 @@ class TestImagesJinja(TestCase):
|
|||
if request_context:
|
||||
site = Site.objects.get(is_default_site=True)
|
||||
request = self.client.get('/test/', HTTP_HOST=site.hostname)
|
||||
request.site = site
|
||||
context['request'] = request
|
||||
|
||||
template = self.engine.from_string(string)
|
||||
|
|
|
@ -94,7 +94,6 @@ MIDDLEWARE = (
|
|||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
|
||||
'wagtail.core.middleware.SiteMiddleware',
|
||||
'wagtail.contrib.redirects.middleware.RedirectMiddleware',
|
||||
)
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue