Initial commit

This commit is contained in:
KamilM1205 2026-01-19 23:32:11 +04:00
commit 9795660e1f
43 changed files with 2757 additions and 0 deletions

106
tests/conftest.py Normal file
View file

@ -0,0 +1,106 @@
import pytest
import logging
from config.settings import settings
from config.api_config import api_config
from config.ui_config import ui_config
from fixtures.data_fixtures import *
logger = logging.getLogger(__name__)
# Вывод информации о конфигурации
logger.info("=" * 50)
logger.info(f"Running tests in {settings.ENV} environment")
logger.info(f"API Base URL: {api_config.API_BASE_URL}")
logger.info(f"UI Base URL: {ui_config.UI_BASE_URL}")
logger.info("=" * 50)
def pytest_addoption(parser):
"""Добавление кастомных опций командной строки"""
parser.addoption(
"--env-file",
action="store",
default=None,
help="Path to custom .env file"
)
parser.addoption(
"--browser",
action="store",
default=ui_config.BROWSER_NAME,
help="Browser to use for UI tests"
)
parser.addoption(
"--headless",
action="store_true",
default=ui_config.BROWSER_HEADLESS,
help="Run browser in headless mode"
)
parser.addoption(
"--api-url",
action="store",
default=api_config.API_BASE_URL,
help="Override API base URL"
)
parser.addoption(
"--ui-url",
action="store",
default=ui_config.UI_BASE_URL,
help="Override UI base URL"
)
def pytest_configure(config):
"""Конфигурация pytest"""
# Переопределение настроек из командной строки
if config.getoption("--api-url"):
api_config.API_BASE_URL = config.getoption("--api-url")
if config.getoption("--ui-url"):
ui_config.UI_BASE_URL = config.getoption("--ui-url")
if config.getoption("--browser"):
ui_config.BROWSER_NAME = config.getoption("--browser")
if config.getoption("--headless") is not None:
ui_config.BROWSER_HEADLESS = config.getoption("--headless")
# Настройка маркеров
config.addinivalue_line(
"markers",
"smoke: Smoke tests - critical functionality"
)
config.addinivalue_line(
"markers",
"regression: Regression tests - full functionality"
)
config.addinivalue_line(
"markers",
"api: API tests"
)
config.addinivalue_line(
"markers",
"ui: UI tests"
)
config.addinivalue_line(
"markers",
"slow: Slow running tests"
)
@pytest.fixture(scope="session")
def env_config():
"""Конфигурация окружения"""
return {
"env": settings.ENV,
"debug": settings.DEBUG,
"api_url": api_config.API_BASE_URL,
"ui_url": ui_config.UI_BASE_URL,
"log_level": settings.LOG_LEVEL,
}
@pytest.fixture(scope="session")
def api_base_url():
"""Базовый URL API"""
return api_config.API_BASE_URL
@pytest.fixture(scope="session")
def ui_base_url():
"""Базовый URL UI"""
return ui_config.UI_BASE_URL