diff --git a/memopol/tests/test_representatives_list.py b/memopol/tests/test_representatives_list.py
index cda5458416b89e6ccc89d88c9658d31ea0a230e0..17b666ba2f46f2f5e9906eef3d0e3bb52856ff55 100644
--- a/memopol/tests/test_representatives_list.py
+++ b/memopol/tests/test_representatives_list.py
@@ -52,35 +52,14 @@ class RepresentativeListTest(UrlGetTestMixin, TestCase):
         expected = Response.for_test(self)
         expected.assertNoDiff(self.response)
 
-    def filter_test(self, search='', country='', chamber='', group=''):
+    def filter_test(self, num_queries, search='', country='', chamber='',
+                    group=''):
         url = '%s?search=%s&country=%s&chamber=%s&group=%s' % (self.url,
             search, country, chamber, group)
 
         # Cancel out one-time queries (session)
         self.client.get('%s&paginate_by=12&active_only=1' % url)
 
-        """
-        - A count for pagination
-        - One query for chambers (filters)
-        - One query for countries (filters)
-        - One query for representative + score
-        - One query for mandates (including country + main_mandate)
-        """
-        num_queries = 5
-
-        if chamber != '':
-            # One additional query for the selected chamber
-            num_queries = num_queries + 1
-
-        if country != '':
-            # One additional query for the selected country
-            num_queries = num_queries + 1
-
-        if group != '':
-            # One additional query for the selected group
-            # One additional query to fill the DAL select2 widget
-            num_queries = num_queries + 2
-
         with self.assertNumQueries(num_queries):
             self.response = self.client.get(url)
 
@@ -109,19 +88,52 @@ class RepresentativeListTest(UrlGetTestMixin, TestCase):
         self.functional_test(2, 12, 1, 'list')
 
     def test_filter_search(self):
-        self.filter_test('am')
+        """
+        - A count for pagination
+        - One query for representative + score
+        - One query for mandates (including country + main_mandate)
+        - One query for chambers (filters)
+        - One query for countries (filters)
+        """
+        self.filter_test(5, 'am')
 
     def test_filter_country(self):
-        self.filter_test('', 110)
+        """
+        5 same queries as test_filter_search plus:
+        - One query for the country
+        """
+        self.filter_test(6, '', 110)
 
     def test_filter_chamber(self):
-        self.filter_test('', '', 1)
+        """
+        5 same queries as test_filter_search plus:
+        - One query for the chamber
+        """
+        self.filter_test(6, '', '', 1)
 
     def test_filter_group(self):
-        self.filter_test('', '', '', 17)
+        """
+        5 same queries as test_filter_search plus:
+        - One query for the group
+        - One query to display the group name (DAL select2 widget)
+        """
+        self.filter_test(7, '', '', '', 17)
 
     def test_filter_multiple(self):
-        self.filter_test('e', 110, 1, 17)
+        """
+        5 same queries as test_filter_search plus:
+        - One query for the country
+        - One query for the chamber
+        - One query for the group
+        - One query to display the group name (DAL select2 widget)
+        """
+        self.filter_test(9, 'e', 110, 1, 17)
 
     def test_filter_notfound(self):
-        self.filter_test('non-existing-rep-name')
+        """
+        Same queries as test_filter_search minus those two :
+        - One query for representative + score
+        - One query for mandates (including country + main_mandate)
+        (as the first count query returns 0)
+        """
+        self.filter_test(3, 'non-existing-rep-name')