diff --git a/products/tests.py b/products/tests.py index 58f201e..07fbb63 100644 --- a/products/tests.py +++ b/products/tests.py @@ -621,6 +621,30 @@ class ProductSearchTest(TestCase): payload = response.json() self.assertEquals(len(payload['products']), 2) + def test_anon_user_can_search_empty_string(self): + expected_instances = [ + self.factory(tags="lunares/rojos", category='zapatos', description="zapatos verdes", discount=None), + self.factory(tags="colores/rojos, tono/brillante", discount=100.00), + self.factory(tags="lunares/azules", description="zapatos rojos", discount=12.00), + self.factory(tags="lunares/rojos", description="zapatos", discount=0.00), + self.factory(attributes='"zapatos de campo", tono/oscuro', discount=9.00), + ] + unexpected_instances = [ + self.factory(description="chanclas"), + self.factory(tags="azules"), + ] + + query_string = quote("zapatos rojos") + # discount=true + url = f"{self.endpoint}?query_string=" + # send in request + response = self.client.get(url) + # check response + self.assertEqual(response.status_code, 200) + # load response data + payload = response.json() + self.assertEquals(len(payload['products']), len(expected_instances) + len(unexpected_instances)) + class MyProductsViewTest(APITestCase): """my_products tests diff --git a/products/views.py b/products/views.py index 8270cec..262070a 100644 --- a/products/views.py +++ b/products/views.py @@ -176,7 +176,10 @@ def product_search(request): return Response({"errors": {"details": "No query string to parse"}}) elif query_string is '': # return everything - pass + serializer = ProductSerializer(Product.objects.all(), many=True) + products = serializer.data + # filters = extract_search_filters(products) + return Response(data={"filters": [], "count": len(products), "products": products}) try: # we collect our results here result_set = set()