31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
|
|
import unittest
|
|
from unittest.mock import MagicMock, patch
|
|
import main
|
|
|
|
class TestFibonacci(unittest.TestCase):
|
|
"""Тестирование генератора Фибоначчи"""
|
|
|
|
def test_sequence_generation(self):
|
|
"""Проверка первых 10 чисел"""
|
|
expected = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
|
|
fib_gen = main.fibonacci_sequence()
|
|
for num in expected:
|
|
self.assertEqual(next(fib_gen), num)
|
|
|
|
@patch('main.argparse.ArgumentParser')
|
|
def test_argument_parsing(self, mock_parser):
|
|
"""Проверка обработки аргументов"""
|
|
main.main()
|
|
mock_parser.assert_called_once_with(
|
|
prog='Fibonacci Generator',
|
|
description='Генератор бесконечной последовательности Фибоначчи',
|
|
epilog='Разработан с ❤️ для сообщества Фибоначчи'
|
|
)
|
|
|
|
def test_negative_delay(self):
|
|
"""Проверка обработки отрицательной задержки"""
|
|
with self.assertRaises(SystemExit) as cm:
|
|
main.main(['-d', '-1'])
|
|
self.assertEqual(cm.exception.code, 2)
|