import unittest class WorkerTests(unittest.TestCase): def test_initialization(self): worker = Worker('Ivan Ivanov', 1000, 10) self.assertEqual('Ivan Ivanov', worker.name) self.assertEqual(1000, worker.salary) self.assertEqual(10, worker.energy) self.assertEqual(0, worker.money) def test_rest(self): worker = Worker('Ivan Ivanov', 1000, 10) worker.rest() self.assertEqual(worker.energy, 11) def test_work_with_not_enough_energy(self): worker = Worker('Ivan Ivanov', 1000, 0) with self.assertRaises(Exception) as context: worker.work() self.assertEqual(str(context.exception), 'Not enough energy.') def test_work_with_negative_energy(self): worker = Worker('Ivan Ivanov', 1000, -1) with self.assertRaises(Exception) as context: worker.work() self.assertEqual(str(context.exception), 'Not enough energy.') def test_work_and_increase_money(self): worker = Worker('Ivan Ivanov', 1000, 10) worker.work() self.assertEqual(worker.money, 1000) def test_decrease_energy(self): worker = Worker('Ivan Ivanov', 1000, 10) worker.work() self.assertEqual(worker.energy, 9) def test_get_info_returns_correct_string(self): worker = Worker('Ivan Ivanov', 1000, -1) self.assertEqual(worker.get_info(), f'Ivan Ivanov has saved 0 money.') if __name__ == '__main__': unittest.main()