1+ import unittest , os
2+ from faker import Faker
3+
4+ from src .user import User
5+ from src .bank_account import BankAccount
6+
7+
8+ class UserTests (unittest .TestCase ):
9+
10+ def setUp (self ) -> None :
11+ self .faker = Faker (locale = "es" )
12+ self .user = User (name = self .faker .name (), email = self .faker .email ())
13+
14+ def test_user_creation (self ):
15+ name_generated = self .faker .name ()
16+ email_generated = self .faker .email ()
17+ user = User (name = name_generated , email = email_generated )
18+ self .assertEqual (user .name , name_generated )
19+ self .assertEqual (user .email , email_generated )
20+
21+ def test_user_with_multiple_accounts (self ):
22+ for _ in range (3 ):
23+ bank_account = BankAccount (
24+ balance = self .faker .random_int (min = 100 , max = 2000 , step = 50 ),
25+ log_file = self .faker .file_name (extension = ".txt" )
26+ )
27+ self .user .add_account (account = bank_account )
28+
29+ expected_value = self .user .get_total_balance ()
30+ value = sum (account .get_balance () for account in self .user .accounts )
31+ self .assertEqual (value , expected_value )
32+
33+ def tearDown (self ) -> None :
34+ for account in self .user .accounts :
35+ os .remove (account .log_file )
0 commit comments