It would be cool if one can parameterize browser_type_launch_args using pytest.mark.parameterize's indirect=True flag with the request parameter like so:
import pytest
@pytest.fixture(scope="session")
def browser_type_launch_args(pytestconfig, request) -> dict:
launch_options = {}
if pytestconfig.getoption("--headed") or request.param.get("headed"):
launch_options["headless"] = False
...
return launch_options
@pytest.mark.parametrize(
"browser_type_launch_args", [{"headed": True}], indirect=True
)
def test_browser_type_launch_args(browser_type_launch_args: dict) -> None:
pass
This would enable in-source configuration (more readable), without having to pass args externally or via config file.