diff --git a/core/tests/test_bill.py b/core/tests/test_bill.py index 1a1946d1f8d3e450ee0d1dfee526f77135842336..2593b944ab0a93e02b2d74fd1d9ae921cd5a6f95 100644 --- a/core/tests/test_bill.py +++ b/core/tests/test_bill.py @@ -7,14 +7,14 @@ from core.models.bill import Bill endpoint = "/api/bill/" data_1 = { - "title": "water", + "wallet": 3, "price": "0.85", "comment": "discount", "categories": 8 } data_2 = { - "title": "mattress", + "wallet": 1, "price": "99.65", "comment": "None", "categories": 2 @@ -56,7 +56,7 @@ class BillTests(APITestCase): get_response = self.client.get(endpoint) # print(get_response.json()) self.assertEqual(get_response.status_code, 200) - self.assertEqual(get_response.json()["title"],data_1["title"]) + self.assertEqual(get_response.json()["wallet"],data_1["wallet"]) self.assertEqual(get_response.json()["price"],data_1["price"]) self.assertEqual(get_response.json()["categories"],data_1["categories"]) self.assertEqual(get_response.json()["comment"],data_1["comment"]) @@ -68,7 +68,7 @@ class BillTests(APITestCase): endpoint = f"/api/bill/{Bill.objects.all()[0].id}/" data_updated = { - "title": "buttersquash", + "wallet": 2, "price": "0.01", "comment": "juicy", "categories": 4 @@ -76,21 +76,21 @@ class BillTests(APITestCase): get_response = self.client.put(endpoint, data_updated, format='json') # print(get_response.json()) self.assertEqual(get_response.status_code, 200) - self.assertEqual(get_response.json()["title"],data_updated["title"]) + self.assertEqual(get_response.json()["wallet"],data_updated["wallet"]) self.assertEqual(get_response.json()["price"],data_updated["price"]) self.assertEqual(get_response.json()["categories"],data_updated["categories"]) self.assertEqual(get_response.json()["comment"],data_updated["comment"]) ## partial update data_updated_2 = { - "title": "buttersquash", + "wallet": 2, "price": "56.60", "comment": "juicy", "categories": 4 } get_response = self.client.put(endpoint, data_updated_2, format='json') self.assertEqual(get_response.status_code, 200) - self.assertEqual(get_response.json()["title"],data_updated_2["title"]) + self.assertEqual(get_response.json()["wallet"],data_updated_2["wallet"]) self.assertEqual(get_response.json()["price"],data_updated_2["price"]) self.assertEqual(get_response.json()["categories"],data_updated_2["categories"]) self.assertEqual(get_response.json()["comment"],data_updated_2["comment"]) diff --git a/core/tests/test_bill_search.py b/core/tests/test_bill_search.py new file mode 100644 index 0000000000000000000000000000000000000000..5e57625593bfbea47e3d6bdca6cd9efe3a67dfb0 --- /dev/null +++ b/core/tests/test_bill_search.py @@ -0,0 +1,170 @@ +from django.contrib.auth.models import User +from rest_framework.test import APITestCase +from knox.models import AuthToken + +from core.models.bill import Bill + +from datetime import date + +endpoint = "/api/bill/" + +data_1 = { + "wallet": 3, + "price": "0.85", + "comment": "discount", + "categories": 8 +} + +data_2 = { + "wallet": 1, + "price": "99.65", + "comment": "None", + "categories": 2 +} + + +class BillTests(APITestCase): + def setUp(self): + username = "xjhmlcy" + email = "xjhmlcy123@gmail.com" + password = "abcdefg123" + user = User.objects.create_user(username=username, email=email, password=password) + token, token_key = AuthToken.objects.create(user) + self.client.credentials(HTTP_AUTHORIZATION='Token ' + token_key) + + def test_categories_search(self): + + endpoint = "/api/bill/" + + get_response_create_1 = self.client.post(endpoint, data_1, format='json') + get_response_create_2 = self.client.post(endpoint, data_2, format='json') + + self.assertEqual(get_response_create_1.status_code, 201) + self.assertEqual(get_response_create_2.status_code, 201) + + endpoint = "/api/bill/search/?item=categories&keyword=8" + + get_response = self.client.get(endpoint) + self.assertEqual(get_response.status_code, 200) + self.assertEqual(get_response.json()[0]["wallet"],data_1["wallet"]) + self.assertEqual(get_response.json()[0]["price"],data_1["price"]) + self.assertEqual(get_response.json()[0]["categories"],data_1["categories"]) + self.assertEqual(get_response.json()[0]["comment"],data_1["comment"]) + + + + endpoint = "/api/bill/search/?item=categories&keyword=2" + + get_response = self.client.get(endpoint) + self.assertEqual(get_response.status_code, 200) + self.assertEqual(get_response.json()[0]["wallet"],data_2["wallet"]) + self.assertEqual(get_response.json()[0]["price"],data_2["price"]) + self.assertEqual(get_response.json()[0]["categories"],data_2["categories"]) + self.assertEqual(get_response.json()[0]["comment"],data_2["comment"]) + + + def test_price_search(self): + + endpoint = "/api/bill/" + + get_response_create_1 = self.client.post(endpoint, data_1, format='json') + get_response_create_2 = self.client.post(endpoint, data_2, format='json') + + self.assertEqual(get_response_create_1.status_code, 201) + self.assertEqual(get_response_create_2.status_code, 201) + + endpoint = "/api/bill/search/?item=price&keyword=0.85" + + get_response = self.client.get(endpoint) + self.assertEqual(get_response.status_code, 200) + self.assertEqual(get_response.json()[0]["wallet"],data_1["wallet"]) + self.assertEqual(get_response.json()[0]["price"],data_1["price"]) + self.assertEqual(get_response.json()[0]["categories"],data_1["categories"]) + self.assertEqual(get_response.json()[0]["comment"],data_1["comment"]) + + + + endpoint = "/api/bill/search/?item=price&keyword=99.65" + + get_response = self.client.get(endpoint) + self.assertEqual(get_response.status_code, 200) + self.assertEqual(get_response.json()[0]["wallet"],data_2["wallet"]) + self.assertEqual(get_response.json()[0]["price"],data_2["price"]) + self.assertEqual(get_response.json()[0]["categories"],data_2["categories"]) + self.assertEqual(get_response.json()[0]["comment"],data_2["comment"]) + + + def test_date_search(self): + + # date: today + data_1 = { + "wallet": 3, + "price": "0.85", + "comment": "discount", + "categories": 8, + } + + # date: this month + data_2 = { + "wallet": 1, + "price": "99.65", + "comment": "None", + "categories": 2, + "date": date( date.today().year, date.today().month, 2) + } + + # date: this year + data_3 = { + "wallet": 2, + "price": "8.88", + "comment": "", + "categories": 1, + "date": date( date.today().year, 2, date.today().day) + } + + endpoint = "/api/bill/" + + get_response_create_1 = self.client.post(endpoint, data_3, format='json') + + self.assertEqual(get_response_create_1.status_code, 201) + + endpoint = "/api/bill/search/?item=date&keyword=year" + + get_response = self.client.get(endpoint) + self.assertEqual(get_response.status_code, 200) + self.assertEqual(get_response.json()[0]["wallet"],data_3["wallet"]) + self.assertEqual(get_response.json()[0]["price"],data_3["price"]) + self.assertEqual(get_response.json()[0]["categories"],data_3["categories"]) + self.assertEqual(get_response.json()[0]["comment"],data_3["comment"]) + + + endpoint = "/api/bill/" + + get_response_create_2 = self.client.post(endpoint, data_2, format='json') + + self.assertEqual(get_response_create_2.status_code, 201) + + endpoint = "/api/bill/search/?item=date&keyword=month" + + get_response = self.client.get(endpoint) + self.assertEqual(get_response.status_code, 200) + self.assertEqual(get_response.json()[0]["wallet"],data_2["wallet"]) + self.assertEqual(get_response.json()[0]["price"],data_2["price"]) + self.assertEqual(get_response.json()[0]["categories"],data_2["categories"]) + self.assertEqual(get_response.json()[0]["comment"],data_2["comment"]) + + + endpoint = "/api/bill/" + + get_response_create_3 = self.client.post(endpoint, data_1, format='json') + + self.assertEqual(get_response_create_3.status_code, 201) + + endpoint = "/api/bill/search/?item=date&keyword=day" + + get_response = self.client.get(endpoint) + self.assertEqual(get_response.status_code, 200) + self.assertEqual(get_response.json()[0]["wallet"],data_1["wallet"]) + self.assertEqual(get_response.json()[0]["price"],data_1["price"]) + self.assertEqual(get_response.json()[0]["categories"],data_1["categories"]) + self.assertEqual(get_response.json()[0]["comment"],data_1["comment"])