def test_several_pages_are_created_when_multiple_results(self): max_post_nb_per_page = 5 post_nb = 16 num_pages = ceil(post_nb / max_post_nb_per_page) self.client.force_login(user=self.user) search_text = "bambous rouges" post_type = "NEED" post_list = create_post_bulk(post_nb=5) query_related_post_list = create_post_bulk(post_nb=post_nb, post_type=post_type, text_content="Je suis spécialiste de l'arrachage de {}.".format(search_text)) post_list += query_related_post_list for page_nb in range(1, num_pages+1): with self.subTest(page_nb=page_nb): query_set = {"search_text": search_text, "type": post_type, "page": page_nb} query_url = reverse("search:home") + "?" + urlencode(query_set) response = self.client.get(query_url) self.assertEqual(response.status_code, 200) post_search_results = response.context["post_search_results"] expected_post_number = post_nb-(max_post_nb_per_page*(page_nb-1)) if page_nb == num_pages else max_post_nb_per_page self.assertEqual(len(post_search_results), expected_post_number) self.assertEqual(post_search_results.paginator.num_pages, num_pages) for post in query_related_post_list[(page_nb-1)*5:max_post_nb_per_page*page_nb]: with self.subTest(post=post): self.assertIn(post, post_search_results)
def test_single_result(self): self.client.force_login(user=self.user) search_text = "bambous rouges" post_type = "OFFER" post_list = create_post_bulk(post_nb=10) query_related_post_list = create_post_bulk(post_nb=1, post_type=post_type, text_content="Je suis spécialiste de l'arrachage de {}.".format(search_text)) post_list += query_related_post_list query_set = {"search_text": search_text, "type": post_type} query_url = reverse("search:home") + "?" + urlencode(query_set) response = self.client.get(query_url) self.assertEqual(response.status_code, 200) post_search_results = response.context["post_search_results"] self.assertEqual(len(post_search_results), 1) self.assertIn(query_related_post_list[0], post_search_results)
def setUpClass(cls): super(NewMessageView, cls).setUpClass() cls.post, = create_post_bulk(1)
def setUp(self): self.post, = create_post_bulk(1) self.client.force_login(user=self.user) self.post_data = {"message": "my message", "post": self.post.id}