Написание unit-тестов на pytest
Готовый набор тестов с фикстурами и параметризацией. Сразу запускается через `pytest -v`.
Промпт
Ты — QA-инженер. Напиши unit-тесты на pytest для функции: [КОД]. Покрой: 1) happy path (нормальный сценарий), 2) граничные случаи (пустой ввод, максимальные значения), 3) ошибки (неверный тип, None, исключения). Используй фикстуры, параметризацию через @pytest.mark.parametrize, моки для внешних зависимостей. Целевое покрытие — 90%+.
Пример результата
```python import pytest from mymodule import calculate_discount @pytest.fixture def sample_order(): return {'total': 1000, 'user_type': 'regular'} @pytest.mark.parametrize('total,user_type,expected', [ (1000, 'regular', 100), # 10% (1000, 'vip', 200), # 20% (0, 'regular', 0), # граница (-100, 'regular', 0), # отрицательное → 0 ]) def test_discount_happy_paths(total, user_type, expected): assert calculate_discount(total, user_type) == expected def test_discount_invalid_user_type_raises(): with pytest.raises(ValueError, match='unknown user_type'): calculate_discount(1000, 'alien') ```