deer-flow/backend/tests/test_browser_ci_runner.py
Xuehao Xu 29ba806fc6
feat(knowledge): add independent Wiki and entity relation retrieval tools (#7171)
* feat(knowledge): add independent Wiki and entity relation retrieval tools

* fix(knowledge): address review diagnostics and CI catalog coverage

* fix(knowledge): deduplicate graph evidence and update catalog e2e

* fix(knowledge): clarify bounded evidence and pin browser CI runners

* Update e2e-tests to run on ubuntu-latest

* Update workflow to use ubuntu-latest

* test(ci): stop pinning maintainer-controlled browser runner images

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-10-22 16:54:58 +08:00

22 lines
1.1 KiB
Python

"""Browser CI installs its dependencies before executing browser tests."""
from pathlib import Path
import pytest
import yaml
@pytest.mark.parametrize(("workflow", "job"), [("e2e-tests.yml", "e2e-tests"), ("replay-e2e.yml", "fullstack-replay-render")])
def test_browser_ci_installs_chromium_before_running_tests(workflow, job):
root = Path(__file__).resolve().parents[2]
config = yaml.safe_load((root / ".github/workflows" / workflow).read_text(encoding="utf-8"))
browser_job = config["jobs"][job]
# Runner images are maintained by CI owners; do not freeze a temporary
# OS compatibility workaround in an unrelated backend unit test.
steps = browser_job["steps"]
installs = [index for index, step in enumerate(steps) if "playwright install chromium --with-deps" in step.get("run", "")]
tests = [index for index, step in enumerate(steps) if "pnpm exec playwright test" in step.get("run", "")]
assert installs, "Browser dependencies must be installed"
assert tests, "The browser job must execute tests"
assert max(installs) < min(tests), "Install Chromium before running browser tests"