Bases: TestCase
Teste para a classe OwnerAPIDetail.
Esta classe contém testes para os métodos da classe OwnerAPIDetail, que
lida com operações detalhadas relacionadas a um titular específico.
Source code in finances/tests/test_finances_owner_detail_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 | class OwnerAPIDetailTest(TestCase):
"""
Teste para a classe OwnerAPIDetail.
Esta classe contém testes para os métodos da classe OwnerAPIDetail, que
lida com operações detalhadas relacionadas a um titular específico.
"""
def setUp(self):
"""
Configuração inicial para os testes.
Este método é executado antes de cada teste. Ele cria uma instância
inicial de objetos necessários para os testes.
"""
self.factory = RequestFactory()
self.user = User.objects.create_user(
username='user1',
password='password1',
first_name='Carlos',
last_name='Alberto',
email='carlos@email.com'
)
self.account = Account.objects.create(
owner=self.user,
name='Conta Corrente',
balance=1000
)
def test_get(self):
"""
Testa o método GET para obter o titular específico.
Este teste verifica se o método GET retorna o status HTTP 200 OK para
uma solicitação de listagem com detalhes de um titular válido.
"""
view = OnwerAPIDetail.as_view()
request = self.factory.get(f'/api/owner/{self.user.pk}/')
force_authenticate(request, user=self.user)
response = view(request, pk=self.user.pk)
self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_patch(self):
"""
Testa o método PATCH para atualizar os dados do titular específico.
Este teste verifica se o método PATCH retorna o status HTTP 200 OK para
uma solicitação de atualização com os dados válidos do titular.
"""
view = OnwerAPIDetail.as_view()
data = {
'email': 'calosalberto@email.com'
}
request = self.factory.patch(
f'/api/owner/{self.user.pk}/',
data=data,
content_type='application/json'
)
force_authenticate(request, user=self.user)
response = view(request, pk=self.user.pk)
self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_delete(self):
"""
Testa o método DELETE para exclusão do titular específico.
Este teste verifica se o método DELETE retorna o status HTTP 204 NO
CONTENT para uma solicitação de exclusão válida do titular e conta
associada.
"""
view = OnwerAPIDetail.as_view()
request = self.factory.delete(f'/api/owner/{self.user.pk}/')
force_authenticate(request, user=self.user)
response = view(request, pk=self.user.pk)
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertFalse(Account.objects.filter(owner=self.user).exists())
def test_delete_owner_without_account(self):
"""
Testa o método DELETE para quando o titular não tiver uma conta.
Este teste verifica se o método DELETE retorna o status HTTP 204 NO
CONTENT para uma solicitação de exclusão válida quando ocorrer apenas
a exclusão do titular sem uma conta associada a ele.
"""
view = OnwerAPIDetail.as_view()
user_without_account = User.objects.create_user(
username='user_without_account',
password='password123',
first_name='John',
last_name='Doe',
email='johndoe@example.com'
)
request = self.factory.delete(f'/api/owner/{user_without_account.pk}/')
force_authenticate(request, user=user_without_account)
response = view(request, pk=user_without_account.pk)
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertFalse(Account.objects.filter(
owner=user_without_account).exists())
|
setUp()
Configuração inicial para os testes.
Este método é executado antes de cada teste. Ele cria uma instância
inicial de objetos necessários para os testes.
Source code in finances/tests/test_finances_owner_detail_view.py
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | def setUp(self):
"""
Configuração inicial para os testes.
Este método é executado antes de cada teste. Ele cria uma instância
inicial de objetos necessários para os testes.
"""
self.factory = RequestFactory()
self.user = User.objects.create_user(
username='user1',
password='password1',
first_name='Carlos',
last_name='Alberto',
email='carlos@email.com'
)
self.account = Account.objects.create(
owner=self.user,
name='Conta Corrente',
balance=1000
)
|
test_delete()
Testa o método DELETE para exclusão do titular específico.
Este teste verifica se o método DELETE retorna o status HTTP 204 NO
CONTENT para uma solicitação de exclusão válida do titular e conta
associada.
Source code in finances/tests/test_finances_owner_detail_view.py
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 | def test_delete(self):
"""
Testa o método DELETE para exclusão do titular específico.
Este teste verifica se o método DELETE retorna o status HTTP 204 NO
CONTENT para uma solicitação de exclusão válida do titular e conta
associada.
"""
view = OnwerAPIDetail.as_view()
request = self.factory.delete(f'/api/owner/{self.user.pk}/')
force_authenticate(request, user=self.user)
response = view(request, pk=self.user.pk)
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertFalse(Account.objects.filter(owner=self.user).exists())
|
test_delete_owner_without_account()
Testa o método DELETE para quando o titular não tiver uma conta.
Este teste verifica se o método DELETE retorna o status HTTP 204 NO
CONTENT para uma solicitação de exclusão válida quando ocorrer apenas
a exclusão do titular sem uma conta associada a ele.
Source code in finances/tests/test_finances_owner_detail_view.py
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 | def test_delete_owner_without_account(self):
"""
Testa o método DELETE para quando o titular não tiver uma conta.
Este teste verifica se o método DELETE retorna o status HTTP 204 NO
CONTENT para uma solicitação de exclusão válida quando ocorrer apenas
a exclusão do titular sem uma conta associada a ele.
"""
view = OnwerAPIDetail.as_view()
user_without_account = User.objects.create_user(
username='user_without_account',
password='password123',
first_name='John',
last_name='Doe',
email='johndoe@example.com'
)
request = self.factory.delete(f'/api/owner/{user_without_account.pk}/')
force_authenticate(request, user=user_without_account)
response = view(request, pk=user_without_account.pk)
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertFalse(Account.objects.filter(
owner=user_without_account).exists())
|
test_get()
Testa o método GET para obter o titular específico.
Este teste verifica se o método GET retorna o status HTTP 200 OK para
uma solicitação de listagem com detalhes de um titular válido.
Source code in finances/tests/test_finances_owner_detail_view.py
41
42
43
44
45
46
47
48
49
50
51
52
53 | def test_get(self):
"""
Testa o método GET para obter o titular específico.
Este teste verifica se o método GET retorna o status HTTP 200 OK para
uma solicitação de listagem com detalhes de um titular válido.
"""
view = OnwerAPIDetail.as_view()
request = self.factory.get(f'/api/owner/{self.user.pk}/')
force_authenticate(request, user=self.user)
response = view(request, pk=self.user.pk)
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
test_patch()
Testa o método PATCH para atualizar os dados do titular específico.
Este teste verifica se o método PATCH retorna o status HTTP 200 OK para
uma solicitação de atualização com os dados válidos do titular.
Source code in finances/tests/test_finances_owner_detail_view.py
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 | def test_patch(self):
"""
Testa o método PATCH para atualizar os dados do titular específico.
Este teste verifica se o método PATCH retorna o status HTTP 200 OK para
uma solicitação de atualização com os dados válidos do titular.
"""
view = OnwerAPIDetail.as_view()
data = {
'email': 'calosalberto@email.com'
}
request = self.factory.patch(
f'/api/owner/{self.user.pk}/',
data=data,
content_type='application/json'
)
force_authenticate(request, user=self.user)
response = view(request, pk=self.user.pk)
self.assertEqual(response.status_code, status.HTTP_200_OK)
|