summaryrefslogtreecommitdiff
path: root/tests/admin_views/tests.py
diff options
context:
space:
mode:
authorLoic Bistuer <loic.bistuer@gmail.com>2014-03-28 21:42:58 +0700
committerTim Graham <timograham@gmail.com>2014-03-31 07:29:08 -0400
commita5297c1ef4c4c010d1eb979177d4633beb5f9cad (patch)
tree7ee57b20b4479d093527e47178486198ee68616a /tests/admin_views/tests.py
parent916f0de74ba00f65cc789c075ce94f7fba858976 (diff)
[1.6.x] Fixed #21795 -- Made add_preserved_filters account for url prefixes.
Thanks to trac username honyczek for the report. Refs #6903. Backport of 4339e9a92d from master
Diffstat (limited to 'tests/admin_views/tests.py')
-rw-r--r--tests/admin_views/tests.py38
1 files changed, 33 insertions, 5 deletions
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index f26b0ab01b..0fbf118e33 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -9,17 +9,18 @@ from django.conf import settings, global_settings
from django.core import mail
from django.core.exceptions import ImproperlyConfigured
from django.core.files import temp as tempfile
-from django.core.urlresolvers import reverse
+from django.core.urlresolvers import get_script_prefix, reverse, set_script_prefix
# Register auth models with the admin.
from django.contrib import admin
from django.contrib.auth import get_permission_codename
from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
from django.contrib.admin.models import LogEntry, DELETION
from django.contrib.admin.sites import LOGIN_FORM_KEY
+from django.contrib.admin.templatetags.admin_urls import add_preserved_filters
+from django.contrib.admin.tests import AdminSeleniumWebDriverTestCase
from django.contrib.admin.util import quote
from django.contrib.admin.validation import ModelAdminValidator
from django.contrib.admin.views.main import IS_POPUP_VAR
-from django.contrib.admin.tests import AdminSeleniumWebDriverTestCase
from django.contrib.auth import REDIRECT_FIELD_NAME
from django.contrib.auth.models import Group, User, Permission
from django.contrib.contenttypes.models import ContentType
@@ -4224,11 +4225,14 @@ class AdminKeepChangeListFiltersTests(TestCase):
def tearDown(self):
self.client.logout()
- def get_changelist_filters_querystring(self):
- return urlencode({
+ def get_changelist_filters(self):
+ return {
'is_superuser__exact': 0,
'is_staff__exact': 0,
- })
+ }
+
+ def get_changelist_filters_querystring(self):
+ return urlencode(self.get_changelist_filters())
def get_preserved_filters_querystring(self):
return urlencode({
@@ -4370,6 +4374,30 @@ class AdminKeepChangeListFiltersTests(TestCase):
response = self.client.post(self.get_delete_url(), {'post': 'yes'})
self.assertRedirects(response, self.get_changelist_url())
+ def test_url_prefix(self):
+ context = {
+ 'preserved_filters': self.get_preserved_filters_querystring(),
+ 'opts': User._meta,
+ }
+
+ url = reverse('admin:auth_user_changelist', current_app=self.admin_site.name)
+ self.assertEqual(
+ self.get_changelist_url(),
+ add_preserved_filters(context, url),
+ )
+
+ original_prefix = get_script_prefix()
+ try:
+ set_script_prefix('/prefix/')
+ url = reverse('admin:auth_user_changelist', current_app=self.admin_site.name)
+ self.assertEqual(
+ self.get_changelist_url(),
+ add_preserved_filters(context, url),
+ )
+ finally:
+ set_script_prefix(original_prefix)
+
+
class NamespacedAdminKeepChangeListFiltersTests(AdminKeepChangeListFiltersTests):
admin_site = site2