refactor(e2e): unify RouterInstance into Gateway class, split conftest.py into modular fixtures (#16671)
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
"""Marker helper utilities for E2E tests.
|
||||
|
||||
This module provides helper functions for extracting values from pytest markers.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def get_marker_value(
|
||||
request: pytest.FixtureRequest,
|
||||
marker_name: str,
|
||||
arg_index: int = 0,
|
||||
default: Any = None,
|
||||
) -> Any:
|
||||
"""Get a value from a pytest marker.
|
||||
|
||||
Args:
|
||||
request: The pytest fixture request.
|
||||
marker_name: Name of the marker to look for.
|
||||
arg_index: Index of positional argument to extract.
|
||||
default: Default value if marker not found.
|
||||
|
||||
Returns:
|
||||
The marker argument value or default.
|
||||
"""
|
||||
marker = request.node.get_closest_marker(marker_name)
|
||||
if marker is None:
|
||||
return default
|
||||
if marker.args and len(marker.args) > arg_index:
|
||||
return marker.args[arg_index]
|
||||
return default
|
||||
|
||||
|
||||
def get_marker_kwargs(
|
||||
request: pytest.FixtureRequest,
|
||||
marker_name: str,
|
||||
defaults: dict[str, Any] | None = None,
|
||||
) -> dict[str, Any]:
|
||||
"""Get keyword arguments from a pytest marker.
|
||||
|
||||
Args:
|
||||
request: The pytest fixture request.
|
||||
marker_name: Name of the marker to look for.
|
||||
defaults: Default values if marker not found or missing kwargs.
|
||||
|
||||
Returns:
|
||||
Dict of keyword arguments merged with defaults.
|
||||
"""
|
||||
result = dict(defaults) if defaults else {}
|
||||
marker = request.node.get_closest_marker(marker_name)
|
||||
if marker is not None:
|
||||
result.update(marker.kwargs)
|
||||
return result
|
||||
Reference in New Issue
Block a user