From 74498a3de28e4dbc6898b18ac7130cebd5aca863 Mon Sep 17 00:00:00 2001 From: Radislav Date: Mon, 21 Jul 2025 14:40:38 +0300 Subject: [PATCH] =?UTF-8?q?feat(pages):=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B0=D0=BD=D0=BD=D0=BE=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D1=82=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B8=20=D1=84=D0=B8=D0=BA=D1=81=D1=82=D1=83?= =?UTF-8?q?=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Типизированы параметры в функциях и фикстурах: * parser: Parser в pytest_addoption() * request: FixtureRequest в browser() и других методах * playwright: Playwright в get_firefox_browser() и аналогичных * browser: Browser и start: str в get_context() * browser: Page в return_back() - обнавлены импорты типов: * Playwright из playwright.sync_api * Parser из _pytest.config.argparsing * FixtureRequest из _pytest.fixtures Изменения повышают надежность и поддерживаемость тестового фреймворка --- fixtures/pages.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/fixtures/pages.py b/fixtures/pages.py index 01a7b9a..c51b5ba 100644 --- a/fixtures/pages.py +++ b/fixtures/pages.py @@ -4,11 +4,13 @@ """ import pytest -from playwright.sync_api import Browser, BrowserContext, Page, sync_playwright +from playwright.sync_api import Browser, BrowserContext, Page, sync_playwright, Playwright import os +from _pytest.config.argparsing import Parser +from _pytest.fixtures import FixtureRequest -def pytest_addoption(parser): +def pytest_addoption(parser: Parser): """Добавляет пользовательские опции командной строки для настройки браузера. Args: @@ -42,7 +44,7 @@ def pytest_addoption(parser): @pytest.fixture(scope='class') -def browser(request) -> Page: +def browser(request: FixtureRequest) -> Page: """Фикстура для создания и управления экземпляром браузера. Args: @@ -86,7 +88,7 @@ def browser(request) -> Page: playwright.stop() -def get_firefox_browser(playwright, request) -> Browser: +def get_firefox_browser(playwright: Playwright, request: FixtureRequest) -> Browser: """Создает и возвращает экземпляр Firefox браузера. Args: @@ -102,7 +104,7 @@ def get_firefox_browser(playwright, request) -> Browser: ) -def get_chrome_browser(playwright, request) -> Browser: +def get_chrome_browser(playwright: Playwright, request: FixtureRequest) -> Browser: """Создает и возвращает экземпляр Chrome браузера. Args: @@ -119,7 +121,7 @@ def get_chrome_browser(playwright, request) -> Browser: ) -def get_remote_chrome(playwright, request) -> Browser: +def get_remote_chrome(playwright: Playwright, request: FixtureRequest) -> Browser: """Создает и возвращает экземпляр Chrome браузера для удаленного запуска. Args: @@ -135,7 +137,7 @@ def get_remote_chrome(playwright, request) -> Browser: ) -def get_context(browser, request, start) -> BrowserContext: +def get_context(browser: Browser, request: FixtureRequest, start: str) -> BrowserContext: """Создает и настраивает контекст браузера. Args: @@ -173,7 +175,7 @@ def get_context(browser, request, start) -> BrowserContext: @pytest.fixture(scope="function") -def return_back(browser): +def return_back(browser: Page): """Фикстура для возврата на предыдущую страницу в браузере. Args: