Bases: TestCase
Testes para o serializador de conta.
Esta classe contém testes para o serializador de Account, que é responsável
por validar e transformar dados
de contas financeiras em um formato adequado para o uso na API.
Source code in finances/tests/test_finances_account_serializer.py
8
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 | class AccountSerializerTestCase(TestCase):
"""
Testes para o serializador de conta.
Esta classe contém testes para o serializador de Account, que é responsável
por validar e transformar dados
de contas financeiras em um formato adequado para o uso na API.
"""
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.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_valid_account(self):
"""
Testa a validação de uma conta válida.
Este teste verifica se o serializador aceita corretamente uma conta
válida e retorna os dados esperados.
"""
serializer = AccountSerializer(instance=self.account)
data = serializer.data
self.assertEqual(data['owner'], self.user.id)
self.assertEqual(data['name'], 'Conta Corrente')
self.assertEqual(float(data['balance']), 1000)
def test_invalid_negative_balance(self):
"""
Testa a validação de um saldo negativo.
Este teste verifica se o serializador rejeita corretamente um saldo
negativo e retorna uma mensagem de erro apropriada.
"""
invalid_data = {
'owner': self.user.id,
'name': 'Conta Poupança',
'balance': -100
}
serializer = AccountSerializer(data=invalid_data)
with self.assertRaises(ValidationError) as context:
serializer.is_valid(raise_exception=True)
self.assertEqual(
context.exception.detail,
{'balance': ['The balance must not be negative.']}
)
def test_invalid_missing_owner(self):
"""
Testa a validação de proprietário ausente.
Este teste verifica se o serializador rejeita corretamente uma conta
sem proprietário e retorna uma mensagem de erro apropriada.
"""
invalid_data = {
'name': 'Conta Investimento',
'balance': 2000
}
serializer = AccountSerializer(data=invalid_data)
self.assertFalse(serializer.is_valid())
self.assertEqual(serializer.errors, {
'owner': ['Este campo é obrigatório.']})
|
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_account_serializer.py
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 | 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.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_invalid_missing_owner()
Testa a validação de proprietário ausente.
Este teste verifica se o serializador rejeita corretamente uma conta
sem proprietário e retorna uma mensagem de erro apropriada.
Source code in finances/tests/test_finances_account_serializer.py
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91 | def test_invalid_missing_owner(self):
"""
Testa a validação de proprietário ausente.
Este teste verifica se o serializador rejeita corretamente uma conta
sem proprietário e retorna uma mensagem de erro apropriada.
"""
invalid_data = {
'name': 'Conta Investimento',
'balance': 2000
}
serializer = AccountSerializer(data=invalid_data)
self.assertFalse(serializer.is_valid())
self.assertEqual(serializer.errors, {
'owner': ['Este campo é obrigatório.']})
|
test_invalid_negative_balance()
Testa a validação de um saldo negativo.
Este teste verifica se o serializador rejeita corretamente um saldo
negativo e retorna uma mensagem de erro apropriada.
Source code in finances/tests/test_finances_account_serializer.py
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 | def test_invalid_negative_balance(self):
"""
Testa a validação de um saldo negativo.
Este teste verifica se o serializador rejeita corretamente um saldo
negativo e retorna uma mensagem de erro apropriada.
"""
invalid_data = {
'owner': self.user.id,
'name': 'Conta Poupança',
'balance': -100
}
serializer = AccountSerializer(data=invalid_data)
with self.assertRaises(ValidationError) as context:
serializer.is_valid(raise_exception=True)
self.assertEqual(
context.exception.detail,
{'balance': ['The balance must not be negative.']}
)
|
test_valid_account()
Testa a validação de uma conta válida.
Este teste verifica se o serializador aceita corretamente uma conta
válida e retorna os dados esperados.
Source code in finances/tests/test_finances_account_serializer.py
39
40
41
42
43
44
45
46
47
48
49
50
51 | def test_valid_account(self):
"""
Testa a validação de uma conta válida.
Este teste verifica se o serializador aceita corretamente uma conta
válida e retorna os dados esperados.
"""
serializer = AccountSerializer(instance=self.account)
data = serializer.data
self.assertEqual(data['owner'], self.user.id)
self.assertEqual(data['name'], 'Conta Corrente')
self.assertEqual(float(data['balance']), 1000)
|