diff options
author | Nick Pope <nick.pope@flightdataservices.com> | 2017-09-04 02:20:43 +0100 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2017-09-03 21:20:43 -0400 |
commit | dea4cfb95b6a32f584e1676725c835e3aea7d3c2 (patch) | |
tree | 30e8517ecef31786e58869fc575e89c6d0afc47c /tests/modeladmin | |
parent | 9397d3add47f220249c8e543c79489618aaf50d6 (diff) | |
download | django-dea4cfb95b6a32f584e1676725c835e3aea7d3c2.tar.gz |
Refs #27804 -- Used subTest() in a modeladmin test.
Diffstat (limited to 'tests/modeladmin')
-rw-r--r-- | tests/modeladmin/tests.py | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py index 21a388c983..25b9dfed69 100644 --- a/tests/modeladmin/tests.py +++ b/tests/modeladmin/tests.py @@ -1,9 +1,10 @@ from datetime import date from django import forms -from django.contrib.admin.models import LogEntry +from django.contrib.admin.models import ADDITION, CHANGE, DELETION, LogEntry from django.contrib.admin.options import ( HORIZONTAL, VERTICAL, ModelAdmin, TabularInline, + get_content_type_for_model, ) from django.contrib.admin.sites import AdminSite from django.contrib.admin.widgets import AdminDateWidget, AdminRadioSelect @@ -615,9 +616,27 @@ class ModelAdminTests(TestCase): ma = ModelAdmin(Band, self.site) mock_request = MockRequest() mock_request.user = User.objects.create(username='bill') - self.assertEqual(ma.log_addition(mock_request, self.band, 'added'), LogEntry.objects.latest('id')) - self.assertEqual(ma.log_change(mock_request, self.band, 'changed'), LogEntry.objects.latest('id')) - self.assertEqual(ma.log_change(mock_request, self.band, 'deleted'), LogEntry.objects.latest('id')) + content_type = get_content_type_for_model(self.band) + tests = ( + (ma.log_addition, ADDITION, {'added': {}}), + (ma.log_change, CHANGE, {'changed': {'fields': ['name', 'bio']}}), + (ma.log_deletion, DELETION, str(self.band)), + ) + for method, flag, message in tests: + with self.subTest(name=method.__name__): + created = method(mock_request, self.band, message) + fetched = LogEntry.objects.filter(action_flag=flag).latest('id') + self.assertEqual(created, fetched) + self.assertEqual(fetched.action_flag, flag) + self.assertEqual(fetched.content_type, content_type) + self.assertEqual(fetched.object_id, str(self.band.pk)) + self.assertEqual(fetched.user, mock_request.user) + if flag == DELETION: + self.assertEqual(fetched.change_message, '') + self.assertEqual(fetched.object_repr, message) + else: + self.assertEqual(fetched.change_message, str(message)) + self.assertEqual(fetched.object_repr, str(self.band)) class ModelAdminPermissionTests(SimpleTestCase): |