dnscms: upgrade to wagtail 8 and django 6.1, test upgrade-sensitive admin surfaces
dnscms / ci (push) Successful in 59s
dnscms / ci (push) Successful in 59s
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
"""Admin view tests: the choose-parent redirect and a smoke test over the
|
||||
admin URLs served by our viewsets."""
|
||||
|
||||
from urllib.parse import parse_qs, urlparse
|
||||
|
||||
import pytest
|
||||
from django.urls import reverse
|
||||
|
||||
from tests.conftest import EventIndexFactory, GenericPageFactory
|
||||
|
||||
|
||||
def _parsed(response):
|
||||
url = urlparse(response["Location"])
|
||||
return url.path, parse_qs(url.query)
|
||||
|
||||
|
||||
def test_choose_parent_no_valid_parent_renders_form(admin_client, db):
|
||||
response = admin_client.get(reverse("events:choose_parent"))
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_choose_parent_single_parent_redirects_with_next(admin_client, event_index):
|
||||
response = admin_client.get(reverse("events:choose_parent"))
|
||||
|
||||
assert response.status_code == 302
|
||||
path, query = _parsed(response)
|
||||
assert path == reverse("wagtailadmin_pages:add", args=["events", "eventpage", event_index.pk])
|
||||
assert query["next"] == [reverse("events:index")]
|
||||
|
||||
|
||||
def test_choose_parent_multiple_parents_shows_form_then_redirects(admin_client, event_index):
|
||||
# max_count=1 stops a second EventIndex being created through the admin,
|
||||
# but the view logic only cares how many instances exist.
|
||||
second_index = EventIndexFactory(parent=event_index.get_parent(), slug="events-2")
|
||||
|
||||
response = admin_client.get(reverse("events:choose_parent"))
|
||||
assert response.status_code == 200
|
||||
|
||||
response = admin_client.post(reverse("events:choose_parent"), {"parent_page": second_index.pk})
|
||||
assert response.status_code == 302
|
||||
path, query = _parsed(response)
|
||||
assert path == reverse("wagtailadmin_pages:add", args=["events", "eventpage", second_index.pk])
|
||||
assert query["next"] == [reverse("events:index")]
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"url_name",
|
||||
[
|
||||
"wagtailadmin_home",
|
||||
"events:index",
|
||||
"events:choose_parent",
|
||||
"associations:index",
|
||||
"news:index",
|
||||
"venues:index",
|
||||
"wagtailimages:index",
|
||||
"wagtailsnippets_events_eventorganizer:list",
|
||||
"association_chooser:choose",
|
||||
"event_organizer_chooser:choose",
|
||||
],
|
||||
)
|
||||
def test_admin_views_render(admin_client, db, url_name):
|
||||
response = admin_client.get(reverse(url_name))
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_page_edit_view_renders_with_custom_editor_assets(admin_client, home_page):
|
||||
"""The page editor must load with our Draftail feature and editor JS wired in."""
|
||||
page = GenericPageFactory(parent=home_page, slug="edit-me")
|
||||
|
||||
response = admin_client.get(reverse("wagtailadmin_pages:edit", args=[page.pk]))
|
||||
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
assert "button-link" in content # dnscms.rich_text feature on the editor
|
||||
assert "js/page-editor.js" in content # insert_editor_js hook output
|
||||
Reference in New Issue
Block a user