summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorantoliny0919 <antoliny0919@gmail.com>2025-07-28 07:59:26 +0900
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-08-19 16:35:56 +0200
commit4187da258fe212d494cb578a0bc2b52c4979ab95 (patch)
tree67f6205a16b1f6785f1ed4e06348d332c36a50f3 /tests/admin_views
parentad4a9e0f3b1de261409bc083aa49dba705531824 (diff)
Fixed #35892 -- Supported Widget.use_fieldset in admin forms.
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/admin.py6
-rw-r--r--tests/admin_views/models.py16
-rw-r--r--tests/admin_views/tests.py25
3 files changed, 47 insertions, 0 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index b6d009b388..69570a8062 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -47,6 +47,7 @@ from .models import (
Color2,
ComplexSortedPerson,
Country,
+ Course,
CoverLetter,
CustomArticle,
CyclicOne,
@@ -1190,6 +1191,10 @@ class CamelCaseAdmin(admin.ModelAdmin):
filter_horizontal = ["m2m"]
+class CourseAdmin(admin.ModelAdmin):
+ radio_fields = {"difficulty": admin.VERTICAL}
+
+
site = admin.AdminSite(name="admin")
site.site_url = "/my-site-url/"
site.register(Article, ArticleAdmin)
@@ -1280,6 +1285,7 @@ site.register(ChapterXtra1, ChapterXtra1Admin)
site.register(Pizza, PizzaAdmin)
site.register(ReadOnlyPizza, ReadOnlyPizzaAdmin)
site.register(ReadablePizza)
+site.register(Course, CourseAdmin)
site.register(Topping, ToppingAdmin)
site.register(Album, AlbumAdmin)
site.register(Song)
diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py
index 8f102dece3..4e2d13efa8 100644
--- a/tests/admin_views/models.py
+++ b/tests/admin_views/models.py
@@ -623,6 +623,22 @@ class CyclicTwo(models.Model):
return self.name
+class Course(models.Model):
+ DIFFICULTY_CHOICES = [
+ ("beginner", "Beginner Class"),
+ ("intermediate", "Intermediate Class"),
+ ("advanced", "Advanced Class"),
+ ]
+
+ title = models.CharField(max_length=100)
+ materials = models.FileField(upload_to="test_upload")
+ difficulty = models.CharField(
+ max_length=20, choices=DIFFICULTY_CHOICES, null=True, blank=True
+ )
+ categories = models.ManyToManyField(Category, blank=True)
+ start_datetime = models.DateTimeField(null=True, blank=True)
+
+
class Topping(models.Model):
name = models.CharField(max_length=20)
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 26fdacfa00..db638c1ea8 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -70,6 +70,7 @@ from .models import (
Color,
ComplexSortedPerson,
Country,
+ Course,
CoverLetter,
CustomArticle,
CyclicOne,
@@ -6908,6 +6909,30 @@ class SeleniumTests(AdminSeleniumTestCase):
name_input_value = name_input.get_attribute("value")
self.assertEqual(name_input_value, "Test section 1")
+ def test_use_fieldset_fields_render(self):
+ from selenium.webdriver.common.by import By
+
+ self.admin_login(
+ username="super", password="secret", login_url=reverse("admin:index")
+ )
+ course = Course.objects.create(
+ title="Django Class", materials="django_documents"
+ )
+ expected_legend_tags_text = [
+ "Materials:",
+ "Difficulty:",
+ "Categories:",
+ "Start datetime:",
+ ]
+ url = reverse("admin:admin_views_course_change", args=(course.pk,))
+ self.selenium.get(self.live_server_url + url)
+ fieldsets = self.selenium.find_elements(
+ By.CSS_SELECTOR, "fieldset.aligned fieldset"
+ )
+ for index, fieldset in enumerate(fieldsets):
+ legend = fieldset.find_element(By.TAG_NAME, "legend")
+ self.assertEqual(legend.text, expected_legend_tags_text[index])
+
@screenshot_cases(["desktop_size", "mobile_size", "rtl", "dark", "high_contrast"])
@override_settings(MESSAGE_LEVEL=10)
def test_messages(self):