mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #20777 -- Admin proxy model deletion regression
Added proxy_models tests by Harm Geerts <github@geertswei.nl>.
This commit is contained in:
@@ -10,12 +10,14 @@ from django.db import models, DEFAULT_DB_ALIAS
|
||||
from django.db.models import signals
|
||||
from django.db.models.loading import cache
|
||||
from django.test import TestCase
|
||||
from django.test.utils import override_settings
|
||||
|
||||
|
||||
from .models import (MyPerson, Person, StatusPerson, LowerStatusPerson,
|
||||
MyPersonProxy, Abstract, OtherPerson, User, UserProxy, UserProxyProxy,
|
||||
Country, State, StateProxy, TrackerUser, BaseUser, Bug, ProxyTrackerUser,
|
||||
Improvement, ProxyProxyBug, ProxyBug, ProxyImprovement, Issue)
|
||||
from .admin import admin as force_admin_model_registration
|
||||
|
||||
|
||||
class ProxyModelTests(TestCase):
|
||||
@@ -366,8 +368,10 @@ class ProxyModelTests(TestCase):
|
||||
self.assertEqual(MyPerson(id=100), Person(id=100))
|
||||
|
||||
|
||||
@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',))
|
||||
class ProxyModelAdminTests(TestCase):
|
||||
fixtures = ['myhorses']
|
||||
urls = 'proxy_models.urls'
|
||||
|
||||
def test_cascade_delete_proxy_model_admin_warning(self):
|
||||
"""
|
||||
@@ -383,3 +387,26 @@ class ProxyModelAdminTests(TestCase):
|
||||
self.assertTrue(tracker_user in collector.edges.get(None, ()))
|
||||
self.assertTrue(base_user in collector.edges.get(None, ()))
|
||||
self.assertTrue(issue in collector.edges.get(tracker_user, ()))
|
||||
|
||||
def test_delete_str_in_model_admin(self):
|
||||
"""
|
||||
Test if the admin delete page shows the correct string representation
|
||||
for a proxy model.
|
||||
"""
|
||||
user = TrackerUser.objects.get(name='Django Pony')
|
||||
proxy = ProxyTrackerUser.objects.get(name='Django Pony')
|
||||
|
||||
user_str = (
|
||||
'Tracker user: <a href="/admin/proxy_models/trackeruser/%s/">%s</a>' % (user.pk, user))
|
||||
proxy_str = (
|
||||
'Proxy tracker user: <a href="/admin/proxy_models/proxytrackeruser/%s/">%s</a>' %
|
||||
(proxy.pk, proxy))
|
||||
|
||||
self.client.login(username='super', password='secret')
|
||||
response = self.client.get('/admin/proxy_models/trackeruser/%s/delete/' % (user.pk,))
|
||||
delete_str = response.context['deleted_objects'][0]
|
||||
self.assertEqual(delete_str, user_str)
|
||||
response = self.client.get('/admin/proxy_models/proxytrackeruser/%s/delete/' % (proxy.pk,))
|
||||
delete_str = response.context['deleted_objects'][0]
|
||||
self.assertEqual(delete_str, proxy_str)
|
||||
self.client.logout()
|
||||
|
||||
Reference in New Issue
Block a user