Skip to content

Commit 783e822

Browse files
committed
Merge branch '12__step' into main
2 parents b4aa0ec + 2a0a815 commit 783e822

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
ipdb==0.13.13
22
requests==2.32.3
3+
Faker==33.3.0

src/user.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class User:
2+
def __init__(self, name, email):
3+
self.name = name
4+
self.email = email
5+
self.accounts = []
6+
7+
def add_account(self, account):
8+
self.accounts.append(account)
9+
10+
def get_total_balance(self):
11+
return sum(account.get_balance() for account in self.accounts)

tests/test_user.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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

Comments
 (0)