summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorantoliny0919 <antoliny0919@gmail.com>2025-08-07 22:17:50 +0900
committerJacob Walls <jacobtylerwalls@gmail.com>2026-02-27 07:43:45 -0500
commit187a789f99ecbc708de517c6b54d480b68ba59fe (patch)
treea9ad3ba592bf6c65cb14b39110adbfbaa2825a51 /tests/admin_views
parentd4ab33af061c13e290b6996756b2c72578891285 (diff)
Fixed #34643 -- Moved inputs beneath labels and errors in admin forms.
Thanks Sarah Boyce and Jacob Walls for reviews. Co-authored-by: Hrushikesh Vaidya <hrushikeshrv@gmail.com>
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/admin.py1
-rw-r--r--tests/admin_views/models.py4
-rw-r--r--tests/admin_views/tests.py38
3 files changed, 35 insertions, 8 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index 6f7cd79e50..0f05a66746 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -498,6 +498,7 @@ class PictureAdmin(admin.ModelAdmin):
class LanguageAdmin(admin.ModelAdmin):
list_display = ["iso", "shortlist", "english_name", "name"]
list_editable = ["shortlist"]
+ fields = [("iso", "english_name"), "name"]
class RecommendationAdmin(admin.ModelAdmin):
diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py
index 5191d1605e..38e26cb95a 100644
--- a/tests/admin_views/models.py
+++ b/tests/admin_views/models.py
@@ -407,8 +407,8 @@ class Picture(models.Model):
class Language(models.Model):
- iso = models.CharField(max_length=5, primary_key=True)
- name = models.CharField(max_length=50)
+ iso = models.CharField(max_length=5, primary_key=True, help_text="iso helptext")
+ name = models.CharField(max_length=50, help_text="name helptext")
english_name = models.CharField(max_length=50)
shortlist = models.BooleanField(default=False)
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 4489dc9950..ac4265c4b4 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -7311,12 +7311,10 @@ class SeleniumTests(AdminSeleniumTestCase):
By.CSS_SELECTOR, "#content-main .field-difficulty, .form-multiline"
)
# Two field boxes.
- field_boxes = multiline.find_elements(By.CSS_SELECTOR, "div > div.fieldBox")
+ field_boxes = multiline.find_elements(By.XPATH, "./*")
self.assertEqual(len(field_boxes), 2)
# One of them is under a <fieldset>.
- under_fieldset = multiline.find_elements(
- By.CSS_SELECTOR, "fieldset > div > div.fieldBox"
- )
+ under_fieldset = multiline.find_elements(By.TAG_NAME, "fieldset")
self.assertEqual(len(under_fieldset), 1)
self.take_screenshot("horizontal_fieldset")
@@ -7461,6 +7459,26 @@ class SeleniumTests(AdminSeleniumTestCase):
self.assertTrue(changelist_filter.is_displayed())
self.take_screenshot("filter_sidebar")
+ @screenshot_cases(["desktop_size", "mobile_size", "rtl", "dark", "high_contrast"])
+ def test_form_errors_render_layout(self):
+ from selenium.webdriver.common.by import By
+
+ self.admin_login(
+ username="super", password="secret", login_url=reverse("admin:index")
+ )
+ self.selenium.get(
+ self.live_server_url + reverse("admin:admin_views_language_add")
+ )
+
+ with self.wait_page_loaded():
+ self.selenium.find_element(By.NAME, "_save").click()
+
+ form_rows = self.selenium.find_elements(By.CSS_SELECTOR, "div.form-row")
+ for row in form_rows:
+ error_list = row.find_element(By.CSS_SELECTOR, "ul.errorlist")
+ self.assertTrue(error_list.is_displayed())
+ self.take_screenshot("error_list")
+
@override_settings(ROOT_URLCONF="admin_views.urls")
class ReadonlyTest(AdminFieldExtractionMixin, TestCase):
@@ -9063,10 +9081,18 @@ class TestLabelVisibility(TestCase):
)
def assert_fieldline_visible(self, response):
- self.assertContains(response, '<div class="form-row field-first field-second">')
+ self.assertContains(
+ response,
+ "<div class="
+ '"form-row flex-container form-multiline field-first field-second">',
+ )
def assert_fieldline_hidden(self, response):
- self.assertContains(response, '<div class="form-row hidden')
+ self.assertContains(
+ response,
+ "<div class="
+ '"form-row flex-container form-multiline hidden field-first field-second">',
+ )
@override_settings(ROOT_URLCONF="admin_views.urls")