diff options
| author | Tim Graham <timograham@gmail.com> | 2018-12-27 20:49:02 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2019-01-17 11:14:07 -0500 |
| commit | 6079ed82f43d8cc4b2c07eb36bc14efa0a1a5c17 (patch) | |
| tree | 7f8d73ef5251ca5327d695596902b79b674083c2 /tests/modeladmin | |
| parent | 92d4d0859a63347de6e2a7bc3ddd49979cc192c5 (diff) | |
Refs #27991 -- Made obj a required argument of InlineModelAdmin.has_add_permission().
Per deprecation timeline.
Diffstat (limited to 'tests/modeladmin')
| -rw-r--r-- | tests/modeladmin/test_has_add_permission_obj_deprecation.py | 111 | ||||
| -rw-r--r-- | tests/modeladmin/tests.py | 24 |
2 files changed, 0 insertions, 135 deletions
diff --git a/tests/modeladmin/test_has_add_permission_obj_deprecation.py b/tests/modeladmin/test_has_add_permission_obj_deprecation.py deleted file mode 100644 index 8e932ec7e8..0000000000 --- a/tests/modeladmin/test_has_add_permission_obj_deprecation.py +++ /dev/null @@ -1,111 +0,0 @@ -from datetime import date - -from django.contrib.admin.options import ModelAdmin, TabularInline -from django.contrib.admin.sites import AdminSite -from django.test import TestCase -from django.utils.deprecation import RemovedInDjango30Warning - -from .models import Band, Song -from .test_checks import CheckTestCase - - -class HasAddPermissionObjTests(CheckTestCase): - def test_model_admin_inherited_valid(self): - class BandAdmin(ModelAdmin): - pass - - self.assertIsValid(BandAdmin, Band) - - def test_model_admin_valid(self): - class BandAdmin(ModelAdmin): - def has_add_permission(self, request): - return super().has_add_permission(request) - - self.assertIsValid(BandAdmin, Band) - - def test_inline_admin_inherited_valid(self): - class SongInlineAdmin(TabularInline): - model = Song - - class BandAdmin(ModelAdmin): - inlines = [SongInlineAdmin] - - self.assertIsValid(BandAdmin, Band) - - def test_inline_admin_valid(self): - class SongInlineAdmin(TabularInline): - model = Song - - def has_add_permission(self, request, obj): - return super().has_add_permission(request, obj) - - class BandAdmin(ModelAdmin): - inlines = [SongInlineAdmin] - - self.assertIsValid(BandAdmin, Band) - - def test_inline_admin_warning(self): - class SongInlineAdmin(TabularInline): - model = Song - - def has_add_permission(self, request): - return super().has_add_permission(request) - - class BandAdmin(ModelAdmin): - inlines = [SongInlineAdmin] - - msg = ( - "Update SongInlineAdmin.has_add_permission() to accept a " - "positional `obj` argument." - ) - with self.assertWarnsMessage(RemovedInDjango30Warning, msg): - self.assertIsValid(BandAdmin, Band) - - -class MockRequest: - method = 'POST' - FILES = {} - POST = {} - - -class SongInline(TabularInline): - model = Song - - def has_add_permission(self, request): - return True - - -class BandAdmin(ModelAdmin): - inlines = [SongInline] - - -class ModelAdminTests(TestCase): - - @classmethod - def setUpTestData(cls): - cls.band = Band.objects.create(name='The Doors', bio='', sign_date=date(1965, 1, 1)) - cls.song = Song.objects.create(name='test', band=cls.band) - - def setUp(self): - self.site = AdminSite() - self.request = MockRequest() - self.request.POST = { - 'song_set-TOTAL_FORMS': 4, - 'song_set-INITIAL_FORMS': 1, - } - self.request.user = self.MockAddUser() - self.ma = BandAdmin(Band, self.site) - - class MockAddUser: - def has_perm(self, perm): - return perm == 'modeladmin.add_band' - - def test_get_inline_instances(self): - self.assertEqual(len(self.ma.get_inline_instances(self.request)), 1) - - def test_get_inline_formsets(self): - formsets, inline_instances = self.ma._create_formsets(self.request, self.band, change=True) - self.assertEqual(len(self.ma.get_inline_formsets(self.request, formsets, inline_instances)), 1) - - def test_get_formsets_with_inlines(self): - self.assertEqual(len(list(self.ma. get_formsets_with_inlines(self.request, self.band))), 1) diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py index 0d78dd9c21..6934bf2b3c 100644 --- a/tests/modeladmin/tests.py +++ b/tests/modeladmin/tests.py @@ -734,10 +734,6 @@ class ModelAdminPermissionTests(SimpleTestCase): def has_perm(self, perm): return perm == 'modeladmin.add_band' - class MockAddUserWithInline(MockUser): - def has_perm(self, perm): - return perm == 'modeladmin.add_concert' - class MockChangeUser(MockUser): def has_perm(self, perm): return perm == 'modeladmin.change_band' @@ -797,26 +793,6 @@ class ModelAdminPermissionTests(SimpleTestCase): self.assertEqual(len(inline_instances), 1) self.assertIsInstance(inline_instances[0], ConcertInline) - def test_inline_has_add_permission_without_obj(self): - # This test will be removed in Django 3.1 when `obj` becomes a required - # argument of has_add_permission() (#27991). - class ConcertInline(TabularInline): - model = Concert - - def has_add_permission(self, request): - return super().has_add_permission(request) - - class BandAdmin(ModelAdmin): - inlines = [ConcertInline] - - ma = BandAdmin(Band, AdminSite()) - request = MockRequest() - request.user = self.MockAddUserWithInline() - band = Band(name='The Doors', bio='', sign_date=date(1965, 1, 1)) - inline_instances = ma.get_inline_instances(request, band) - self.assertEqual(len(inline_instances), 1) - self.assertIsInstance(inline_instances[0], ConcertInline) - def test_has_change_permission(self): """ has_change_permission returns True for users who can edit objects and |
