diff --git a/memopol/tests/test_group_list.py b/memopol/tests/test_group_list.py index aef6d4eebdf57746da75063240bc0f7ede2a667e..4372cb70f2a2f4a74c4e3258f2942420da504820 100644 --- a/memopol/tests/test_group_list.py +++ b/memopol/tests/test_group_list.py @@ -55,3 +55,24 @@ class GroupListTest(ResponseDiffMixin, TestCase): # 1 query for committees # 1 query for pagination self.group_test('committee', 0, 2) + + def group_ac_test(self, q, numQueries): + if q: + url = '/legislature/autocomplete/group/?q=%s' % q + else: + url = '/legislature/autocomplete/group/' + + # setup session variables + self.client.get(url) + + self.responsediff_test(url, numQueries) + + def test_autocomplete(self): + # 1 query for count + # 1 query for groups + self.group_ac_test(None, 2) + + def test_autocomplete_query(self): + # 1 query for count + # 1 query for groups + self.group_ac_test('development', 2) diff --git a/memopol/tests/test_representatives_list.py b/memopol/tests/test_representatives_list.py index 9f5748c9b79c0db16ec10c2b380c05681e2c4063..876120c391ed6a912854eef762b10e155a90ddb5 100644 --- a/memopol/tests/test_representatives_list.py +++ b/memopol/tests/test_representatives_list.py @@ -52,6 +52,41 @@ class RepresentativeListTest(UrlGetTestMixin, TestCase): expected = Response.for_test(self) expected.assertNoDiff(self.response) + def filter_test(self, 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) + + expected = Response.for_test(self) + expected.assertNoDiff(self.response) + def test_page1_paginateby12_active_displaylist(self): self.functional_test(1, 12, 1, 'list') @@ -72,3 +107,18 @@ class RepresentativeListTest(UrlGetTestMixin, TestCase): def test_page2_paginateby12_displaylist(self): self.functional_test(2, 12, 1, 'list') + + def test_filter_search(self): + self.filter_test('am') + + def test_filter_country(self): + self.filter_test('', 110) + + def test_filter_chamber(self): + self.filter_test('', '', 1) + + def test_filter_group(self): + self.filter_test('', '', '', 17) + + def test_filter_multiple(self): + self.filter_test('e', 110, 1, 17)