update tests for deprecated SiteMiddleware

pull/5332/head
Daniel 2019-05-28 16:19:22 +02:00 zatwierdzone przez Daniel Leinfelder
rodzic f745aae9d0
commit 38b304105a
12 zmienionych plików z 93 dodań i 36 usunięć

Wyświetl plik

@ -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}))

Wyświetl plik

@ -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

Wyświetl plik

@ -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']

Wyświetl plik

@ -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()

Wyświetl plik

@ -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,

Wyświetl plik

@ -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):

Wyświetl plik

@ -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

Wyświetl plik

@ -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)

Wyświetl plik

@ -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):

Wyświetl plik

@ -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}))

Wyświetl plik

@ -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)

Wyświetl plik

@ -94,7 +94,6 @@ MIDDLEWARE = (
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'wagtail.core.middleware.SiteMiddleware',
'wagtail.contrib.redirects.middleware.RedirectMiddleware',
)