added filtering by discount to product search

This commit is contained in:
Sam
2021-02-23 12:06:57 +00:00
parent 7ca180f8e6
commit 31066e80bf
3 changed files with 71 additions and 5 deletions

View File

@@ -488,9 +488,6 @@ class ProductSearchTest(TestCase):
payload = response.json()
# check for object creation
self.assertEquals(len(payload['products']), len(expected_instances))
# check ids
for i in range(len(payload['products'])):
self.assertTrue(payload['products'][i]['id'] == expected_instances[i].id)
# check results ordered by rank
current = 1
for i in range(len(payload['products'])):
@@ -576,6 +573,54 @@ class ProductSearchTest(TestCase):
payload = response.json()
self.assertEquals(len(payload['products']), 2)
def test_anon_user_can_filter_discount_true(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={query_string}&discount=true"
# 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']), 3)
def test_anon_user_can_filter_discount_false(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={query_string}&discount=false"
# 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']), 2)
class MyProductsViewTest(APITestCase):
"""my_products tests