name: Test Suite on: push: branches: [main, pre/beta, dev] pull_request: branches: [main, pre/beta] workflow_dispatch: jobs: unit-tests: name: Unit Tests runs-on: ubuntu-latest # Hard cap so a hanging test can never burn the full 6h runner budget again. timeout-minutes: 15 steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install uv uses: astral-sh/setup-uv@v4 - name: Install dependencies run: uv sync # Run only the deterministic, mock-based unit suites. The provider graph # tests (tests/graphs/*), integration tests (tests/integration/*) and the # browser/network suites (e.g. tests/test_chromium.py) require real API # keys or live network/browsers, so in CI they either fail or hang # indefinitely. They should be re-added here once mocked or gated behind # markers + secrets. - name: Run unit tests run: > uv run pytest tests/test_batch_api.py tests/test_csv_scraper_multi_graph.py tests/test_depth_search_graph.py tests/test_json_scraper_graph.py tests/test_minimax_models.py tests/test_scrape_do.py tests/test_search_graph.py tests/utils/convert_to_md_test.py tests/utils/parse_state_keys_test.py