Bases: TestCase
Testes para a API de CategoryAPIList.
Esta classe contém testes para os métodos da API de CategoryAPIList, que
lida com operações relacionadas às categorias que serão usadas nas
transações e orçamentos.
Source code in finances/tests/test_finances_category_list_view.py
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 | class CategoryAPIListTest(TestCase):
"""
Testes para a API de CategoryAPIList.
Esta classe contém testes para os métodos da API de CategoryAPIList, que
lida com operações relacionadas às categorias que serão usadas nas
transações e orçamentos.
"""
def setUp(self):
"""
Configuração inicial para os testes.
Este método é executado antes de cada teste. Ele cria instâncias
iniciais de objetos necessários para os testes.
"""
self.category_1 = Category.objects.create(
name='Alimentação'
)
self.category_2 = Category.objects.create(
name='Academia'
)
self.user = User.objects.create_user(
username='user1',
password='password1',
)
self.client = APIClient()
self.client.force_authenticate(user=self.user)
def test_get_categories(self):
"""
Testa o método GET para obter todas as categorias cadastradas.
Este teste verifica se o método GET retorna todas as categorias com o
status HTTP 200 OK.
"""
response = self.client.get('/api/categories/')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response['content-type'], 'application/json')
categories = Category.objects.all()
serializer = CategorySerializer(categories, many=True)
self.assertEqual(response.data, serializer.data)
def test_no_categories(self):
"""
Testa o método GET quando não há categorias cadastradas.
Este teste verifica se o método GET retorna a mensagem apropriada
quando não há categorias registradas.
"""
Category.objects.all().delete()
response = self.client.get('/api/categories/')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(
response.data,
{'message': 'There are no registered categories.'}
)
def test_create_category(self):
"""
Testa o método POST para criar uma nova conta.
Este teste verifica se o método POST cria uma nova categoria
corretamente e retorna o status HTTP 201 CREATED.
"""
new_category_data = {
'name': 'Medicamentos'
}
response = self.client.post(
'/api/categories/',
data=new_category_data,
format='json'
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
created_category = Category.objects.get(name=new_category_data['name'])
self.assertEqual(created_category.name, new_category_data['name'])
serializer = CategorySerializer(created_category)
self.assertEqual(response.data, serializer.data)
def test_create_category_with_invalid_data(self):
"""
Testa o método POST para criar uma nova categoria com dados inválidos.
Este teste verifica se o método POST cria uma nova categoria com os
dados passados de forma inválida e retorna o status HTTP 400 BAD
REQUEST.
"""
new_category_data = {
'name': ''
}
response = self.client.post(
'/api/categories/',
data=new_category_data,
format='json'
)
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
|
setUp()
Configuração inicial para os testes.
Este método é executado antes de cada teste. Ele cria instâncias
iniciais de objetos necessários para os testes.
Source code in finances/tests/test_finances_category_list_view.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 | def setUp(self):
"""
Configuração inicial para os testes.
Este método é executado antes de cada teste. Ele cria instâncias
iniciais de objetos necessários para os testes.
"""
self.category_1 = Category.objects.create(
name='Alimentação'
)
self.category_2 = Category.objects.create(
name='Academia'
)
self.user = User.objects.create_user(
username='user1',
password='password1',
)
self.client = APIClient()
self.client.force_authenticate(user=self.user)
|
test_create_category()
Testa o método POST para criar uma nova conta.
Este teste verifica se o método POST cria uma nova categoria
corretamente e retorna o status HTTP 201 CREATED.
Source code in finances/tests/test_finances_category_list_view.py
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 | def test_create_category(self):
"""
Testa o método POST para criar uma nova conta.
Este teste verifica se o método POST cria uma nova categoria
corretamente e retorna o status HTTP 201 CREATED.
"""
new_category_data = {
'name': 'Medicamentos'
}
response = self.client.post(
'/api/categories/',
data=new_category_data,
format='json'
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
created_category = Category.objects.get(name=new_category_data['name'])
self.assertEqual(created_category.name, new_category_data['name'])
serializer = CategorySerializer(created_category)
self.assertEqual(response.data, serializer.data)
|
test_create_category_with_invalid_data()
Testa o método POST para criar uma nova categoria com dados inválidos.
Este teste verifica se o método POST cria uma nova categoria com os
dados passados de forma inválida e retorna o status HTTP 400 BAD
REQUEST.
Source code in finances/tests/test_finances_category_list_view.py
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 | def test_create_category_with_invalid_data(self):
"""
Testa o método POST para criar uma nova categoria com dados inválidos.
Este teste verifica se o método POST cria uma nova categoria com os
dados passados de forma inválida e retorna o status HTTP 400 BAD
REQUEST.
"""
new_category_data = {
'name': ''
}
response = self.client.post(
'/api/categories/',
data=new_category_data,
format='json'
)
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
|
test_get_categories()
Testa o método GET para obter todas as categorias cadastradas.
Este teste verifica se o método GET retorna todas as categorias com o
status HTTP 200 OK.
Source code in finances/tests/test_finances_category_list_view.py
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 | def test_get_categories(self):
"""
Testa o método GET para obter todas as categorias cadastradas.
Este teste verifica se o método GET retorna todas as categorias com o
status HTTP 200 OK.
"""
response = self.client.get('/api/categories/')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response['content-type'], 'application/json')
categories = Category.objects.all()
serializer = CategorySerializer(categories, many=True)
self.assertEqual(response.data, serializer.data)
|
test_no_categories()
Testa o método GET quando não há categorias cadastradas.
Este teste verifica se o método GET retorna a mensagem apropriada
quando não há categorias registradas.
Source code in finances/tests/test_finances_category_list_view.py
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 | def test_no_categories(self):
"""
Testa o método GET quando não há categorias cadastradas.
Este teste verifica se o método GET retorna a mensagem apropriada
quando não há categorias registradas.
"""
Category.objects.all().delete()
response = self.client.get('/api/categories/')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(
response.data,
{'message': 'There are no registered categories.'}
)
|