[BUG] Tracing does not work with playwright.request.newcontext()
Context: I am using playwright to test REST API endpoints. I do not see trace.zip after I run pytest --tracing=on.
Code Snippet
Simple test script
import os
from typing import Generator
import pytest
from playwright.sync_api import Playwright, APIRequestContext
@pytest.fixture(scope="session")
def api_request_context(
playwright: Playwright,
) -> Generator[APIRequestContext, None, None]:
request_context = playwright.request.new_context(
base_url="https://api.publicapis.org",
ignore_https_errors=True
)
yield request_context
request_context.dispose()
def test_should_create_bug_report(api_request_context: APIRequestContext) -> None:
response = api_request_context.get("/entries")
assert response.ok
Describe the bug
pytest --tracing=on test_mytest.py does not produce trace.zip
AFAICT, it also doesn't work with Browser.new_context (e.g., using the browser fixture to create a context with a different scale factor browser.new_context(device_scale_factor=2)); not sure if that ends up using the same APIRequestContext in the end.
Edit: Ah, maybe what I'm seeing is #99.
And this is particularly problematic as the only way to test chrome extensions is by creating a new context as per https://playwright.dev/python/docs/chrome-extensions
Please help :)
In fact I just reimplemented my fixture copying it from https://github.com/microsoft/playwright-pytest/blob/fb2e7c74bbce5913897b75be35311e22480fa5ab/pytest_playwright/pytest_playwright.py#L232 and creating the context the way I need it and everything worked as expected. Might not help in all cases but to me it kinda solved....