Initial commit
This commit is contained in:
commit
9795660e1f
43 changed files with 2757 additions and 0 deletions
106
tests/conftest.py
Normal file
106
tests/conftest.py
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue