mirror of https://github.com/django/django.git
Improved test coverage of contrib/admin/checks.py.
This commit is contained in:
parent
7c9a833301
commit
2b53c8377d
|
@ -64,6 +64,10 @@ class SystemChecksTestCase(SimpleTestCase):
|
||||||
]
|
]
|
||||||
self.assertEqual(errors, expected)
|
self.assertEqual(errors, expected)
|
||||||
|
|
||||||
|
@override_settings(TEMPLATES=[])
|
||||||
|
def test_no_template_engines(self):
|
||||||
|
self.assertEqual(admin.checks.check_dependencies(), [])
|
||||||
|
|
||||||
@override_settings(
|
@override_settings(
|
||||||
INSTALLED_APPS=[
|
INSTALLED_APPS=[
|
||||||
'django.contrib.admin',
|
'django.contrib.admin',
|
||||||
|
@ -138,6 +142,31 @@ class SystemChecksTestCase(SimpleTestCase):
|
||||||
]
|
]
|
||||||
self.assertEqual(errors, expected)
|
self.assertEqual(errors, expected)
|
||||||
|
|
||||||
|
def test_list_editable_not_a_list_or_tuple(self):
|
||||||
|
class SongAdmin(admin.ModelAdmin):
|
||||||
|
list_editable = 'test'
|
||||||
|
|
||||||
|
self.assertEqual(SongAdmin(Song, AdminSite()).check(), [
|
||||||
|
checks.Error(
|
||||||
|
"The value of 'list_editable' must be a list or tuple.",
|
||||||
|
obj=SongAdmin,
|
||||||
|
id='admin.E120',
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
||||||
|
def test_list_editable_missing_field(self):
|
||||||
|
class SongAdmin(admin.ModelAdmin):
|
||||||
|
list_editable = ('test',)
|
||||||
|
|
||||||
|
self.assertEqual(SongAdmin(Song, AdminSite()).check(), [
|
||||||
|
checks.Error(
|
||||||
|
"The value of 'list_editable[0]' refers to 'test', which is "
|
||||||
|
"not an attribute of 'admin_checks.Song'.",
|
||||||
|
obj=SongAdmin,
|
||||||
|
id='admin.E121',
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
||||||
def test_readonly_and_editable(self):
|
def test_readonly_and_editable(self):
|
||||||
class SongAdmin(admin.ModelAdmin):
|
class SongAdmin(admin.ModelAdmin):
|
||||||
readonly_fields = ["original_release"]
|
readonly_fields = ["original_release"]
|
||||||
|
@ -572,6 +601,18 @@ class SystemChecksTestCase(SimpleTestCase):
|
||||||
]
|
]
|
||||||
self.assertEqual(errors, expected)
|
self.assertEqual(errors, expected)
|
||||||
|
|
||||||
|
def test_readonly_fields_not_list_or_tuple(self):
|
||||||
|
class SongAdmin(admin.ModelAdmin):
|
||||||
|
readonly_fields = 'test'
|
||||||
|
|
||||||
|
self.assertEqual(SongAdmin(Song, AdminSite()).check(), [
|
||||||
|
checks.Error(
|
||||||
|
"The value of 'readonly_fields' must be a list or tuple.",
|
||||||
|
obj=SongAdmin,
|
||||||
|
id='admin.E034',
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
||||||
def test_extra(self):
|
def test_extra(self):
|
||||||
class SongAdmin(admin.ModelAdmin):
|
class SongAdmin(admin.ModelAdmin):
|
||||||
def awesome_song(self, instance):
|
def awesome_song(self, instance):
|
||||||
|
|
|
@ -366,6 +366,17 @@ class RadioFieldsCheckTests(CheckTestCase):
|
||||||
|
|
||||||
class PrepopulatedFieldsCheckTests(CheckTestCase):
|
class PrepopulatedFieldsCheckTests(CheckTestCase):
|
||||||
|
|
||||||
|
def test_not_list_or_tuple(self):
|
||||||
|
class TestModelAdmin(ModelAdmin):
|
||||||
|
prepopulated_fields = {'slug': 'test'}
|
||||||
|
|
||||||
|
self.assertIsInvalid(
|
||||||
|
TestModelAdmin, ValidationTestModel,
|
||||||
|
'The value of \'prepopulated_fields["slug"]\' must be a list '
|
||||||
|
'or tuple.',
|
||||||
|
'admin.E029'
|
||||||
|
)
|
||||||
|
|
||||||
def test_not_dictionary(self):
|
def test_not_dictionary(self):
|
||||||
class TestModelAdmin(ModelAdmin):
|
class TestModelAdmin(ModelAdmin):
|
||||||
prepopulated_fields = ()
|
prepopulated_fields = ()
|
||||||
|
@ -1130,3 +1141,15 @@ class ListDisplayEditableTests(CheckTestCase):
|
||||||
"'list_display_links' is set.",
|
"'list_display_links' is set.",
|
||||||
id='admin.E124',
|
id='admin.E124',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_both_list_editable_and_list_display_links(self):
|
||||||
|
class ProductAdmin(ModelAdmin):
|
||||||
|
list_editable = ('name',)
|
||||||
|
list_display = ('name',)
|
||||||
|
list_display_links = ('name',)
|
||||||
|
self.assertIsInvalid(
|
||||||
|
ProductAdmin, ValidationTestModel,
|
||||||
|
"The value of 'name' cannot be in both 'list_editable' and "
|
||||||
|
"'list_display_links'.",
|
||||||
|
id='admin.E123',
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in New Issue