Skip to content

ci: run the Python SDK test suites on pull requests - #1418

Open
inahus99 wants to merge 1 commit into
supermemoryai:mainfrom
inahus99:ci/python-sdk-tests
Open

ci: run the Python SDK test suites on pull requests#1418
inahus99 wants to merge 1 commit into
supermemoryai:mainfrom
inahus99:ci/python-sdk-tests

Conversation

@inahus99

@inahus99 inahus99 commented Aug 5, 2026

Copy link
Copy Markdown

Closes #1417.

What and why

The Python packages ship real test suites that nothing executes. ci.yml covers only TypeScript (Bun, turbo run check-types, Biome), and the four publish-*-python.yml workflows publish to PyPI without running any tests. These packages are released on the strength of local runs alone.

That gap is already live: openai-sdk-python is broken on main right now — its suite cannot be collected against the current supermemory release (ImportError: cannot import name 'MemoryAddResponse'), which is #1235. Existing tests would have caught it at the breaking commit.

The workflow

Path-filtered, so it only fires on PRs touching these packages or the workflow itself. Matrix over the three packages whose suites currently pass:

Package How it runs
agent-framework-python pip install -e . pytest pytest-asyncio, then pytest
cartesia-sdk-python PYTHONPATH=src python -m unittest, no install
pipecat-sdk-python PYTHONPATH=src python -m unittest, no install

The latter two stub their heavy runtime dependencies (cartesia-line, pipecat-ai, loguru) at import time, so they need nothing installed and finish in well under a second. Only agent-framework-python pays an install cost.

Two deliberate choices:

  • Python 3.10, the lowest version all three declare (requires-python = ">=3.10", and agent-framework-core agrees), so a change that only works on a newer interpreter fails here rather than at a user's install.
  • fail-fast: false, so one package failing still reports the others instead of masking them.

What is not included

openai-sdk-python is deliberately left out, because adding it would land this workflow red. It should be added as a fourth matrix entry once #1235 is fixed — that is a one-line change to this file, and I'm happy to follow up with it.

Verification

All three commands run green against current main: 54 passing for agent-framework-python, 1 each for cartesia-sdk-python and pipecat-sdk-python.

Since this PR touches .github/workflows/ci-python.yml, which is in its own path filter, the workflow runs against itself here — the checks on this PR are the real verification rather than my local runs.

One note on scope: this only wires up the suites that exist. cartesia-sdk-python and pipecat-sdk-python have a single test each, so a green check on those means very little coverage today. Getting them running is the prerequisite for that being worth improving.

The Python packages ship real test suites that nothing executes. `ci.yml`
only covers TypeScript (Bun, turbo check-types, Biome), and the
publish-*-python workflows publish to PyPI without running any tests, so
these packages are released on the strength of local runs alone.

Adds a path-filtered workflow covering the three packages whose suites
currently pass:

- agent-framework-python installs the package and runs pytest (54 tests)
- cartesia-sdk-python and pipecat-sdk-python stub their heavy runtime
  dependencies at import time, so they run under unittest against the
  sources with nothing installed

Python 3.10 is the lowest version these packages declare, so a change that
only works on a newer interpreter fails here. `fail-fast` is disabled so one
package failing still reports the others.

openai-sdk-python is deliberately left out: its suite cannot be collected
against current supermemory, which is issue supermemoryai#1235. It should be added here
once that is fixed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python SDK test suites never run in CI

1 participant