Skip to content

Commit 52a547e

Browse files
committed
feat: user_expense_type tests working
1 parent 6fcfd78 commit 52a547e

File tree

1 file changed

+88
-1
lines changed

1 file changed

+88
-1
lines changed

user_expense_type/tests.py

+88-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,90 @@
11
from django.test import TestCase
2+
from unittest.mock import patch
3+
from rest_framework.test import APIClient
4+
from rest_framework import status
5+
from authentication.services.cognito_service import CognitoService
6+
from user_expense_type.views import UserExpenseTypeViewSet
7+
from rest_framework.response import Response
28

3-
# Create your tests here.
9+
10+
class UserExpenseTypeViewSetTestCase(TestCase):
11+
def setUp(self):
12+
self.client = APIClient()
13+
self.view = UserExpenseTypeViewSet()
14+
self.user_expense_type_data = {
15+
"name": "Viajes",
16+
"description": "Gastos incurridos en viajes",
17+
"set_by_user": True,
18+
"category_name": "Transport",
19+
}
20+
21+
@patch.object(UserExpenseTypeViewSet, "create")
22+
@patch.object(CognitoService, "login_user")
23+
def test_create(self, mock_login_user, mock_create):
24+
mock_login_user.return_value = {
25+
"AuthenticationResult": {"AccessToken": "mock_access_token", "IdToken": "mock_id_token"}
26+
}
27+
mock_create.return_value = Response(status=status.HTTP_201_CREATED, data=self.user_expense_type_data)
28+
29+
request = self.client.post("/expense-types/", self.user_expense_type_data)
30+
request.headers["Authorization"] = "Bearer mock_access_token"
31+
32+
response = self.client.post("/expense-types/", self.user_expense_type_data)
33+
34+
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
35+
self.assertEqual(response.data["name"], "Viajes")
36+
37+
@patch.object(UserExpenseTypeViewSet, "list")
38+
@patch.object(CognitoService, "login_user")
39+
def test_list(self, mock_login_user, mock_list):
40+
mock_login_user.return_value = {
41+
"AuthenticationResult": {"AccessToken": "mock_access_token", "IdToken": "mock_id_token"}
42+
}
43+
mock_list.return_value = Response(status=status.HTTP_200_OK, data=self.user_expense_type_data)
44+
45+
request = self.client.get("/expense-types/")
46+
request.headers["Authorization"] = "Bearer mock_access_token"
47+
48+
response = self.client.get("/expense-types/")
49+
50+
self.assertEqual(response.status_code, status.HTTP_200_OK)
51+
self.assertEqual(response.data["name"], "Viajes")
52+
53+
@patch.object(UserExpenseTypeViewSet, "destroy")
54+
@patch.object(CognitoService, "login_user")
55+
def test_destroy(self, mock_login_user, mock_destroy):
56+
mock_login_user.return_value = {
57+
"AuthenticationResult": {"AccessToken": "mock_access_token", "IdToken": "mock_id_token"}
58+
}
59+
mock_destroy.return_value = Response(status=status.HTTP_204_NO_CONTENT)
60+
61+
request = self.client.delete("/expense-types/")
62+
request.headers["Authorization"] = "Bearer mock_access_token"
63+
request.body = {"id": 1}
64+
65+
response = self.client.delete("/expense-types/")
66+
67+
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
68+
69+
@patch.object(UserExpenseTypeViewSet, "partial_update")
70+
@patch.object(CognitoService, "login_user")
71+
def test_partial_update(self, mock_login_user, mock_partial_update):
72+
mock_login_user.return_value = {
73+
"AuthenticationResult": {"AccessToken": "mock_access_token", "IdToken": "mock_id_token"}
74+
}
75+
new_user_expense_type_data = {
76+
"name": "Viajes",
77+
"description": "Gastos incurridos en viajes por placer",
78+
"set_by_user": True,
79+
"category_name": "Transport",
80+
}
81+
mock_partial_update.return_value = Response(status=status.HTTP_200_OK, data=new_user_expense_type_data)
82+
83+
request = self.client.put("/expense-type/", {"description": "Gastos incurridos en viajes por placer"})
84+
request.headers["Authorization"] = "Bearer mock_access_token"
85+
request.body = {"id": 1}
86+
87+
response = self.client.put("/expense-types/", {"description": "Gastos incurridos en viajes por placer"})
88+
89+
self.assertEqual(response.status_code, status.HTTP_200_OK)
90+
self.assertEqual(response.data["description"], "Gastos incurridos en viajes por placer")

0 commit comments

Comments
 (0)