Skip to content
Snippets Groups Projects
Commit 0c0cfb41 authored by Yirou Qiu's avatar Yirou Qiu
Browse files

add tests for billSearch

parent 07e35089
No related branches found
No related tags found
No related merge requests found
...@@ -7,14 +7,14 @@ from core.models.bill import Bill ...@@ -7,14 +7,14 @@ from core.models.bill import Bill
endpoint = "/api/bill/" endpoint = "/api/bill/"
data_1 = { data_1 = {
"title": "water", "wallet": 3,
"price": "0.85", "price": "0.85",
"comment": "discount", "comment": "discount",
"categories": 8 "categories": 8
} }
data_2 = { data_2 = {
"title": "mattress", "wallet": 1,
"price": "99.65", "price": "99.65",
"comment": "None", "comment": "None",
"categories": 2 "categories": 2
...@@ -56,7 +56,7 @@ class BillTests(APITestCase): ...@@ -56,7 +56,7 @@ class BillTests(APITestCase):
get_response = self.client.get(endpoint) get_response = self.client.get(endpoint)
# print(get_response.json()) # print(get_response.json())
self.assertEqual(get_response.status_code, 200) 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()["price"],data_1["price"])
self.assertEqual(get_response.json()["categories"],data_1["categories"]) self.assertEqual(get_response.json()["categories"],data_1["categories"])
self.assertEqual(get_response.json()["comment"],data_1["comment"]) self.assertEqual(get_response.json()["comment"],data_1["comment"])
...@@ -68,7 +68,7 @@ class BillTests(APITestCase): ...@@ -68,7 +68,7 @@ class BillTests(APITestCase):
endpoint = f"/api/bill/{Bill.objects.all()[0].id}/" endpoint = f"/api/bill/{Bill.objects.all()[0].id}/"
data_updated = { data_updated = {
"title": "buttersquash", "wallet": 2,
"price": "0.01", "price": "0.01",
"comment": "juicy", "comment": "juicy",
"categories": 4 "categories": 4
...@@ -76,21 +76,21 @@ class BillTests(APITestCase): ...@@ -76,21 +76,21 @@ class BillTests(APITestCase):
get_response = self.client.put(endpoint, data_updated, format='json') get_response = self.client.put(endpoint, data_updated, format='json')
# print(get_response.json()) # print(get_response.json())
self.assertEqual(get_response.status_code, 200) 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()["price"],data_updated["price"])
self.assertEqual(get_response.json()["categories"],data_updated["categories"]) self.assertEqual(get_response.json()["categories"],data_updated["categories"])
self.assertEqual(get_response.json()["comment"],data_updated["comment"]) self.assertEqual(get_response.json()["comment"],data_updated["comment"])
## partial update ## partial update
data_updated_2 = { data_updated_2 = {
"title": "buttersquash", "wallet": 2,
"price": "56.60", "price": "56.60",
"comment": "juicy", "comment": "juicy",
"categories": 4 "categories": 4
} }
get_response = self.client.put(endpoint, data_updated_2, format='json') get_response = self.client.put(endpoint, data_updated_2, format='json')
self.assertEqual(get_response.status_code, 200) 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()["price"],data_updated_2["price"])
self.assertEqual(get_response.json()["categories"],data_updated_2["categories"]) self.assertEqual(get_response.json()["categories"],data_updated_2["categories"])
self.assertEqual(get_response.json()["comment"],data_updated_2["comment"]) self.assertEqual(get_response.json()["comment"],data_updated_2["comment"])
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"])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment