diff --git a/products/tests.py b/products/tests.py index 46f57c7..66e639c 100644 --- a/products/tests.py +++ b/products/tests.py @@ -478,6 +478,7 @@ class ProductSearchTest(TestCase): url = f"{self.endpoint}?query_string={query_string}" # send in request response = self.client.get(url) + # import ipdb; ipdb.set_trace() # check response self.assertEqual(response.status_code, 200) @@ -521,8 +522,9 @@ class ProductSearchTest(TestCase): self.assertEqual(response.status_code, 200) # load response data payload = response.json() - # check for object creation self.assertEquals(len(payload['products']), limit) + self.assertEquals(payload['total_results'], len(expected_instances)) + class MyProductsViewTest(APITestCase): """my_products tests diff --git a/products/views.py b/products/views.py index f930635..7a36b1f 100644 --- a/products/views.py +++ b/products/views.py @@ -174,6 +174,8 @@ def product_search(request): ranked_products = sorted(result_list, key= lambda rank:rank.rank, reverse=True) serializer = SearchResultSerializer(ranked_products, many=True) product_results = [dict(i) for i in serializer.data] + total_results = len(product_results) + # check for pagination limit = request.GET.get('limit', None) offset = request.GET.get('offset', None) @@ -185,6 +187,6 @@ def product_search(request): limit = int(limit) product_results = product_results[:limit] - return Response(data={"filters": filters, "products": product_results}) + return Response(data={"filters": filters, "total_results": total_results, "products": product_results}) except Exception as e: return Response({"errors": {"details": str(e)}}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)