/
IvanKhabarov
/
python
Обзор
Документация
Войти
/
IvanKhabarov
/
python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Home_Task/HT_14/task1.py
58 строк
3 KB
Ivan-Khabarov
added task 14
10 окт 2024, 18:27
10 окт 2024, 18:27
72384f6
Код
Авторство
О чём код?
# Задание 1. Тестирование класса с использованием pytest # Напишите класс BankAccount, который управляет балансом счета. Он должен # поддерживать следующие методы: # ● deposit(amount): добавляет указанную сумму к балансу. # ● withdraw(amount): снимает указанную сумму с баланса, если достаточно # средств. # ● get_balance(): возвращает текущий баланс счета. # При попытке снять больше средств, чем доступно на счете, должно # выбрасываться исключение InsufficientFundsError. Напишите как минимум # 5 тестов для проверки работы классов и его методов. class InsufficientFundsError(Exception): def __init__(self): super().__init__("Недостаточно средств на счете.") class BankAccount: def __init__(self, initial_balance=0): self.balance = initial_balance def deposit(self, amount): if amount <= 0: raise ValueError("Сумма депозита должна быть положительной.") self.balance += amount def withdraw(self, amount): if amount > self.balance: raise InsufficientFundsError() self.balance -= amount def get_balance(self): return self.balance import pytest @pytest.fixture def bank_account(): # Подготовка тестового состояния return BankAccount(100) # Начальный баланс 100 def test_initial_balance(bank_account): # Проверка начального баланса assert bank_account.get_balance() == 100 def test_deposit(bank_account): # Проверка депозита bank_account.deposit(50) assert bank_account.get_balance() == 150 def test_withdraw(bank_account): # Проверка снятия средств bank_account.withdraw(30) assert bank_account.get_balance() == 70 def test_withdraw_insufficient_funds(bank_account): # Проверка снятия больше средств, чем доступно with pytest.raises(InsufficientFundsError): bank_account.withdraw(200) def test_deposit_negative_amount(bank_account): # Проверка депозита отрицательной суммы with pytest.raises(ValueError): bank_account.deposit(-10)