Skip to content

No CI, and the test suite is not runnable as configured #56

Description

@rickstaa

The repo has tests but nothing that runs them, and no agreed way to run them.

Current state

  • No CI. There is no .github/workflows directory, so nothing runs on push or PR.
  • pytest is not declared. tests/test_byoc_refresh.py and tests/test_byoc_training.py are pytest modules, but pytest appears in neither dependencies nor the dev extra, so uv run pytest fails on a clean checkout. Both files have been effectively orphaned since they landed in b5dd9d6.
  • Ruff is configured but never run. pyproject.toml carries a per-file-ignores entry and nothing else — no select, and no invocation anywhere.
  • No async test support. Nearly every path in the SDK is async, and there is no pytest-asyncio or equivalent. tests/test_live_runner_payments.py works around this by wrapping asyncio.run in sync functions so it needs no plugin.

Worth deciding together

The ruff rule set matters more than it looks. With ruff's documented defaults (E4, E7, E9, F) the repo has 8 findings, all trivial — 6 unused imports and 2 one-line if x: y. Under a wider default it has 543, dominated by UP045 (Optional[X]X | None, 357 alone) and BLE001 (blind except, 65).

So a lint gate is either an afternoon or a large mechanical diff, depending on that one choice. Pinning select explicitly in pyproject.toml is worth doing regardless, so a ruff upgrade cannot silently change what CI enforces.

Suggested scope

  1. Declare pytest in the dev extra; decide on pytest-asyncio versus the asyncio.run wrapper style already used in tests/test_live_runner_payments.py
  2. Pin [tool.ruff.lint] select deliberately, and fix whatever that surfaces
  3. Add a workflow running lint and tests on PRs
  4. Optionally lift the FakeOrchestrator from tests/test_live_runner_payments.py into a conftest.py fixture once there is more than one payment test module

Context: #53 added tests/test_live_runner_payments.py deliberately framework-free (plain functions and asserts, runnable via uv run python tests/test_live_runner_payments.py) so it would not have to answer these questions inside a payments review. It is already discovered by pytest unchanged.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions