def test_thread_delete_view__get__success(self, _, __):
thread_data = THREADS_LIST_RESPONSE['response'][0]
post_data = POSTS_LIST_RESPONSE['response'][0]
thread_object = thread_factory(thread_data)
related_post_object = post_factory(post_data)
related_post_object.thread = thread_object
delete_url = reverse('{admin_site_name}:{app_label}_{model_name}_delete'.format(
admin_site_name=admin.site.name,
app_label=Thread._meta.app_label,
model_name=Thread._meta.model_name
), args=[thread_object.id])
request = RequestFactory().get(delete_url, follow=True)
request.user = MockSuperUser()
response = ThreadAdmin(Thread, admin.site).delete_view(request, str(thread_object.id))
template_names = set([
'admin/delete_confirmation.html',
'admin/disqus_backstore/delete_confirmation.html',
'admin/disqus_backstore/thread/delete_confirmation.html',
])
self.assertEqual(response.status_code, 200)
self.assertEqual(set(response.template_name), template_names)
# dirty hack for formatting deleted_object context... Use the same formatting
# in django.contrib.admin.utils.get_deleted_objects
# the related post objects will be a list of post object,
# so we have to put it into a list...
deleted_objects = [format_html('{}: <a href="{}">{}</a>',
capfirst(obj.__class__._meta.verbose_name),
reverse('%s:%s_%s_change' % (
admin.site.name,
obj._meta.app_label,
obj._meta.model_name
), None, (quote(obj._get_pk_val()),)),
obj) for obj in [thread_object, related_post_object]]
deleted_objects[1] = [deleted_objects[1]]
self.assertEqual(sorted(response.context_data['deleted_objects']),
sorted(deleted_objects))
评论列表
文章目录