【发布时间】:2020-05-26 21:47:49
【问题描述】:
我在admin 模块中覆盖了函数
@admin.register(Donation)
class DonationAdmin(admin.ModelAdmin):
def log_change(self, request, object, message):
log_obj = super().log_change(request, object, message)
name_map = {name: value.label for name, value
in DonationForm.base_fields.items()}
extended_log = ''
if message:
changed_fields = message[0].get('changed').get('fields')
extended_log = {key: value for key, value in request.POST.items()
if key in changed_fields}
extended_log = self.get_humanize_values(extended_log)
extended_log = dict(
zip(
map(lambda x: name_map[x], extended_log.keys()),
extended_log.values()
)
)
return AdditionalLogEntry.objects.create(
entry=log_obj, extended_log=extended_log)
我该如何测试它?
class DonationAdminTestCase(TestCase):
def setUp(self) -> None:
self.user = UserFactory()
self.donation = DonationFactory()
self.donation_admin = DonationAdmin(model=Donation, admin_site=AdminSite())
def test_log_change(self) -> None:
self.user.is_staff = True
self.user.save()
self.client.force_login(self.user)
# ???
【问题讨论】:
-
我会发布到更改视图本身以对对象进行更改,然后测试是否有额外的日志条目。
标签: python django django-admin python-unittest django-unittest