summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorChristopher Medrela <chris.medrela@gmail.com>2013-02-23 18:57:48 +0100
committerTim Graham <timograham@gmail.com>2013-10-04 14:08:06 -0400
commitdc3d2ac98c1bcfad74d3e9523caf07e7e9fb15aa (patch)
tree6a9ce82d156e662c1e4170e1210fc84659f33e78 /tests
parentbcd4c3f27d5bcf701337ac7c74c042d90792bdc3 (diff)
Fixed #11277 -- Hid labels of fields with HiddenInput widget in admin forms.
Thanks bartTC for the report.
Diffstat (limited to 'tests')
-rw-r--r--tests/admin_views/admin.py36
-rw-r--r--tests/admin_views/models.py9
-rw-r--r--tests/admin_views/tests.py42
3 files changed, 86 insertions, 1 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index 8d864378ce..5ecc085a78 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -30,7 +30,8 @@ from .models import (Article, Chapter, Account, Media, Child, Parent, Picture,
AdminOrderedField, AdminOrderedModelMethod, AdminOrderedAdminMethod,
AdminOrderedCallable, Report, Color2, UnorderedObject, MainPrepopulated,
RelatedPrepopulated, UndeletableObject, UnchangeableObject, UserMessenger, Simple, Choice,
- ShortMessage, Telegram, FilteredManager)
+ ShortMessage, Telegram, FilteredManager, EmptyModelHidden,
+ EmptyModelVisible, EmptyModelMixin)
def callable_year(dt_value):
@@ -709,6 +710,36 @@ class ChoiceList(admin.ModelAdmin):
fields = ['choice']
+# Tests for ticket 11277 ----------------------------------
+
+class FormWithoutHiddenField(forms.ModelForm):
+ first = forms.CharField()
+ second = forms.CharField()
+
+class FormWithoutVisibleField(forms.ModelForm):
+ first = forms.CharField(widget=forms.HiddenInput)
+ second = forms.CharField(widget=forms.HiddenInput)
+
+class FormWithVisibleAndHiddenField(forms.ModelForm):
+ first = forms.CharField(widget=forms.HiddenInput)
+ second = forms.CharField()
+
+class EmptyModelVisibleAdmin(admin.ModelAdmin):
+ form = FormWithoutHiddenField
+ fieldsets = (
+ (None, {
+ 'fields':(('first', 'second'),),
+ }),
+ )
+
+class EmptyModelHiddenAdmin(admin.ModelAdmin):
+ form = FormWithoutVisibleField
+ fieldsets = EmptyModelVisibleAdmin.fieldsets
+
+class EmptyModelMixinAdmin(admin.ModelAdmin):
+ form = FormWithVisibleAndHiddenField
+ fieldsets = EmptyModelVisibleAdmin.fieldsets
+
site = admin.AdminSite(name="admin")
site.register(Article, ArticleAdmin)
site.register(CustomArticle, CustomArticleAdmin)
@@ -790,6 +821,9 @@ site.register(Color2, CustomTemplateFilterColorAdmin)
site.register(Simple, AttributeErrorRaisingAdmin)
site.register(UserMessenger, MessageTestingAdmin)
site.register(Choice, ChoiceList)
+site.register(EmptyModelHidden, EmptyModelHiddenAdmin)
+site.register(EmptyModelVisible, EmptyModelVisibleAdmin)
+site.register(EmptyModelMixin, EmptyModelMixinAdmin)
# Register core models we need in our tests
from django.contrib.auth.models import User, Group
diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py
index c09411dc27..adccae6c26 100644
--- a/tests/admin_views/models.py
+++ b/tests/admin_views/models.py
@@ -704,3 +704,12 @@ class FilteredManager(models.Model):
pk_gt_1 = _Manager()
objects = models.Manager()
+
+class EmptyModelVisible(models.Model):
+ """ See ticket #11277. """
+
+class EmptyModelHidden(models.Model):
+ """ See ticket #11277. """
+
+class EmptyModelMixin(models.Model):
+ """ See ticket #11277. """
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 9d1b0fad69..25a4b02495 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -4571,5 +4571,47 @@ class AdminKeepChangeListFiltersTests(TestCase):
response = self.client.post(self.get_delete_url(), {'post': 'yes'})
self.assertRedirects(response, self.get_changelist_url())
+
class NamespacedAdminKeepChangeListFiltersTests(AdminKeepChangeListFiltersTests):
admin_site = site2
+
+
+@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',))
+class TestLabelVisibility(TestCase):
+ """ #11277 -Labels of hidden fields in admin were not hidden. """
+
+ urls = "admin_views.urls"
+ fixtures = ['admin-views-users.xml']
+
+ def setUp(self):
+ self.client.login(username='super', password='secret')
+
+ def test_all_fields_visible(self):
+ response = self.client.get('/test_admin/admin/admin_views/emptymodelvisible/add/')
+ self.assert_fieldline_visible(response)
+ self.assert_field_visible(response, 'first')
+ self.assert_field_visible(response, 'second')
+
+ def test_all_fields_hidden(self):
+ response = self.client.get('/test_admin/admin/admin_views/emptymodelhidden/add/')
+ self.assert_fieldline_hidden(response)
+ self.assert_field_hidden(response, 'first')
+ self.assert_field_hidden(response, 'second')
+
+ def test_mixin(self):
+ response = self.client.get('/test_admin/admin/admin_views/emptymodelmixin/add/')
+ self.assert_fieldline_visible(response)
+ self.assert_field_hidden(response, 'first')
+ self.assert_field_visible(response, 'second')
+
+ def assert_field_visible(self, response, field_name):
+ self.assertContains(response, '<div class="field-box field-%s">' % field_name)
+
+ def assert_field_hidden(self, response, field_name):
+ self.assertContains(response, '<div class="field-box field-%s hidden">' % field_name)
+
+ def assert_fieldline_visible(self, response):
+ self.assertContains(response, '<div class="form-row field-first field-second">')
+
+ def assert_fieldline_hidden(self, response):
+ self.assertContains(response, '<div class="form-row hidden')