Эта папка содержит все тесты для проекта onlinesim-python-api.
test_simple_start.py- Тесты для примера simple_start.pytest_basic_api.py- Базовые тесты API функциональностиintegration_tests.py- Интеграционные тесты с использованием mock данныхmock_data_examples.py- Mock данные для тестированияconftest.py- Конфигурация pytest и общие фикстуры__init__.py- Инициализация пакета тестов
pip install pytest pytest-cov pytest-mockpython -m pytest tests/ -vpython -m pytest tests/test_simple_start.py -v
python -m pytest tests/test_basic_api.py -v
python -m pytest tests/integration_tests.py -vpython -m pytest tests/ --cov=onlinesimru --cov-report=htmlpython -m pytest tests/ -m unit -vpython -m pytest tests/ -m integration -vpython -m pytest tests/ -v --disable-warnings@pytest.mark.unit- Unit тесты (быстрые)@pytest.mark.integration- Интеграционные тесты (медленные)@pytest.mark.slow- Медленные тесты@pytest.mark.api- API связанные тесты@pytest.mark.mock- Тесты с mock данными
В conftest.py определены общие фикстуры:
mock_driver- Mock экземпляр Drivermock_user_service- Mock сервис пользователяmock_numbers_service- Mock сервис номеровmock_proxy_service- Mock сервис проксиsample_api_key- Пример API ключаsample_balance_data- Пример данных баланса
def test_balance_check(mock_driver, mock_user_service):
# Настройка mock
mock_driver.user.return_value = mock_user_service
# Выполнение теста
result = mock_driver.user().balance()
# Проверки
assert result["balance"] == 100.00В mock_data_examples.py содержатся различные mock данные:
- Баланс пользователя
- Ошибки API
- Профиль пользователя
- Номера телефонов
- Сообщения
- Прокси
- Тарифы
- Создайте новый файл с префиксом
test_ - Наследуйтесь от
unittest.TestCaseили используйте pytest - Добавьте соответствующие маркеры
- Используйте существующие фикстуры или создайте новые
Убедитесь, что в тестах правильно настроен путь к проекту:
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))Проверьте, что установлен pytest:
pip install pytestУбедитесь, что импортируете mock данные из правильного места:
from mock_data_examples import MOCK_BALANCE_RESPONSES