Rafał Pitoń 8 лет назад
Родитель
Сommit
dd32d34603

+ 26 - 0
misago/admin/tests/test_admin_views.py

@@ -1,3 +1,6 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
 from django.contrib.auth import get_user_model
 from django.test import TestCase
 from django.urls import reverse
@@ -187,3 +190,26 @@ class AdminIndexViewTests(AdminTestCase):
         response = self.client.get(reverse('misago:admin:index'))
 
         self.assertContains(response, self.user.username)
+
+
+class AdminGenericViewsTests(AdminTestCase):
+    def test_view_redirected_queryvar(self):
+        """querystring redirected value is handled"""
+        test_link = reverse('misago:admin:users:accounts:index')
+
+        # request resulted in redirect with redirected=1 bit
+        response = self.client.get('%s?username=lorem' % test_link)
+        self.assertEqual(response.status_code, 302)
+        self.assertIn('redirected=1', response['location'])
+
+        # request with flag muted redirect
+        response = self.client.get(
+            '%s?redirected=1&username=lorem' % test_link)
+        self.assertEqual(response.status_code, 200)
+
+    def test_list_search_unicode_handling(self):
+        """querystring creation handles unicode strings"""
+        test_link = reverse('misago:admin:users:accounts:index')
+        response = self.client.get(
+            '%s?redirected=1&username=%s' % (test_link, 'łut'))
+        self.assertEqual(response.status_code, 200)

+ 1 - 1
misago/admin/views/generic/list.py

@@ -4,7 +4,7 @@ from django.db import transaction
 from django.shortcuts import redirect
 from django.urls import reverse
 from django.utils.translation import ugettext_lazy as _
-from six.moves.urllib.parse import urlencode
+from django.utils.six.moves.urllib.parse import urlencode
 
 from misago.core.exceptions import ExplicitFirstPage
 

+ 3 - 3
misago/users/tests/test_useradmin_views.py

@@ -49,19 +49,19 @@ class UserAdminViewsTests(AdminTestCase):
         user_b = User.objects.create_user('Tyrion', 't321@test.com', 'pass123')
 
         # Search both
-        response = self.client.get(link_base + '&username=tyr')
+        response = self.client.get('%s&username=tyr' % link_base)
         self.assertEqual(response.status_code, 200)
         self.assertContains(response, user_a.username)
         self.assertContains(response, user_b.username)
 
         # Search tyrion
-        response = self.client.get(link_base + '&username=tyrion')
+        response = self.client.get('%s&username=tyrion' % link_base)
         self.assertEqual(response.status_code, 200)
         self.assertNotContains(response, user_a.username)
         self.assertContains(response, user_b.username)
 
         # Search tyrael
-        response = self.client.get(link_base + '&email=t123@test.com')
+        response = self.client.get('%s&email=t123@test.com' % link_base)
         self.assertEqual(response.status_code, 200)
         self.assertContains(response, user_a.username)
         self.assertNotContains(response, user_b.username)