Browse Source

Fixed tests for admin users list

Rafał Pitoń 11 years ago
parent
commit
6f20bdbebd

+ 18 - 8
misago/admin/views/generic/list.py

@@ -55,6 +55,9 @@ class ListView(AdminView):
         context['page'] = context['paginator'].page(page)
         context['page'] = context['paginator'].page(page)
         context['items'] = context['page'].object_list
         context['items'] = context['page'].object_list
 
 
+    """
+    Filter list items
+    """
     @property
     @property
     def filters_token(self):
     def filters_token(self):
         return '%s:filters' % self.root_link
         return '%s:filters' % self.root_link
@@ -65,11 +68,14 @@ class ListView(AdminView):
     def filter_items(self, context):
     def filter_items(self, context):
         pass
         pass
 
 
+    """
+    Order list items
+    """
     @property
     @property
     def ordering_session_key(self):
     def ordering_session_key(self):
         return 'misago_admin_%s_order_by' % self.root_link
         return 'misago_admin_%s_order_by' % self.root_link
 
 
-    def get_ordering_from_get(self, request):
+    def get_ordering_from_GET(self, request):
         sort = request.GET.get('sort')
         sort = request.GET.get('sort')
 
 
         if request.GET.get('direction') == 'desc':
         if request.GET.get('direction') == 'desc':
@@ -85,9 +91,6 @@ class ListView(AdminView):
         new_ordering = request.session.get(self.ordering_session_key)
         new_ordering = request.session.get(self.ordering_session_key)
         return self.clean_ordering(new_ordering)
         return self.clean_ordering(new_ordering)
 
 
-    def get_default_ordering(self):
-        pass
-
     def clean_ordering(self, new_ordering):
     def clean_ordering(self, new_ordering):
         for order_by, name in self.ordering:
         for order_by, name in self.ordering:
             if order_by == new_ordering:
             if order_by == new_ordering:
@@ -97,9 +100,9 @@ class ListView(AdminView):
 
 
     def get_ordering_methods(self, request):
     def get_ordering_methods(self, request):
         methods = {
         methods = {
-            'GET': self.get_ordering_from_get(request),
+            'GET': self.get_ordering_from_GET(request),
             'session': self.get_ordering_from_session(request),
             'session': self.get_ordering_from_session(request),
-            'default': self.get_default_ordering(),
+            'default': self.clean_ordering(self.ordering[0][0]),
         }
         }
 
 
         if methods['GET'] and methods['GET'] != methods['session']:
         if methods['GET'] and methods['GET'] != methods['session']:
@@ -129,6 +132,9 @@ class ListView(AdminView):
                     order_as_dict['order_by'] = order_as_dict['order_by'][1:]
                     order_as_dict['order_by'] = order_as_dict['order_by'][1:]
                 context['order_by'].append(order_as_dict)
                 context['order_by'].append(order_as_dict)
 
 
+    """
+    Dispatch response
+    """
     def make_querystrings(self, request, context):
     def make_querystrings(self, request, context):
         values = {}
         values = {}
         filter_values = {}
         filter_values = {}
@@ -138,11 +144,16 @@ class ListView(AdminView):
             filter_values = context['active_filters']
             filter_values = context['active_filters']
             values.update(filter_values)
             values.update(filter_values)
 
 
-        if context['order']:
+        if context['order_by']:
             order_values = {
             order_values = {
                 'sort': context['order']['order_by'],
                 'sort': context['order']['order_by'],
                 'direction': context['order']['type'],
                 'direction': context['order']['type'],
                 }
                 }
+
+            if order_values['sort'][0] == '-':
+                # We don't start sorting criteria with minus in querystring
+                order_values['sort'] = order_values['sort'][1:]
+
             values.update(order_values)
             values.update(order_values)
 
 
         if values:
         if values:
@@ -152,7 +163,6 @@ class ListView(AdminView):
         if filter_values:
         if filter_values:
             context['querystring_filter'] = '?%s' % urlencode(filter_values)
             context['querystring_filter'] = '?%s' % urlencode(filter_values)
 
 
-
     def dispatch(self, request, *args, **kwargs):
     def dispatch(self, request, *args, **kwargs):
         active_filters = request.session.get(self.filters_token, None)
         active_filters = request.session.get(self.filters_token, None)
         extra_actions_list = self.extra_actions or []
         extra_actions_list = self.extra_actions or []

+ 1 - 0
misago/users/tests/test_rankadmin_views.py

@@ -10,6 +10,7 @@ class RankAdminViewsTests(AdminTestCase):
         response = self.client.get(
         response = self.client.get(
             reverse('misago:admin:users:accounts:index'))
             reverse('misago:admin:users:accounts:index'))
 
 
+        response = self.client.get(response['location'])
         self.assertIn(reverse('misago:admin:users:ranks:index'),
         self.assertIn(reverse('misago:admin:users:ranks:index'),
                       response.content)
                       response.content)
 
 

+ 2 - 0
misago/users/tests/test_useradmin_views.py

@@ -15,6 +15,8 @@ class UserAdminViewsTests(AdminTestCase):
         """users list view returns 200"""
         """users list view returns 200"""
         response = self.client.get(
         response = self.client.get(
             reverse('misago:admin:users:accounts:index'))
             reverse('misago:admin:users:accounts:index'))
+        self.assertEqual(response.status_code, 302)
 
 
+        response = self.client.get(response['location'])
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
         self.assertIn('TestAdmin', response.content)
         self.assertIn('TestAdmin', response.content)