From e6f64c03d117a323d1ba34f9af8e337e0a031f25 Mon Sep 17 00:00:00 2001 From: Suhani Date: Wed, 5 Aug 2026 22:43:57 +0530 Subject: [PATCH 1/2] ci: run the Python SDK test suites on pull requests 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 #1235. It should be added here once that is fixed. --- .github/workflows/ci-python.yml | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/ci-python.yml diff --git a/.github/workflows/ci-python.yml b/.github/workflows/ci-python.yml new file mode 100644 index 00000000..7c8baeae --- /dev/null +++ b/.github/workflows/ci-python.yml @@ -0,0 +1,56 @@ +name: CI - Python SDK Tests + +on: + pull_request: + paths: + - "packages/agent-framework-python/**" + - "packages/cartesia-sdk-python/**" + - "packages/pipecat-sdk-python/**" + - ".github/workflows/ci-python.yml" + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + test: + name: ${{ matrix.package }} + runs-on: ubuntu-latest + timeout-minutes: 15 + strategy: + # Report every package, rather than masking the rest behind the first failure. + fail-fast: false + matrix: + include: + # Has a pytest suite and needs its runtime dependencies installed. + - package: agent-framework-python + install: pip install -e . pytest pytest-asyncio + test: pytest + # These suites stub their heavy runtime dependencies (cartesia-line, + # pipecat-ai, loguru) at import time, so they run against the sources + # with nothing installed and need no install step. + - package: cartesia-sdk-python + test: PYTHONPATH=src python -m unittest discover -s tests -v + - package: pipecat-sdk-python + test: PYTHONPATH=src python -m unittest discover -s tests -v + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + # The lowest version these packages declare support for, so a change + # that only works on newer Python is caught here. + python-version: "3.10" + cache: pip + cache-dependency-path: packages/${{ matrix.package }}/pyproject.toml + + - name: Install dependencies + if: matrix.install + working-directory: packages/${{ matrix.package }} + run: ${{ matrix.install }} + + - name: Run tests + working-directory: packages/${{ matrix.package }} + run: ${{ matrix.test }} From 630738f098a0401db63fbc1be924508a91fb351a Mon Sep 17 00:00:00 2001 From: Suhani Date: Fri, 21 Aug 2026 13:03:49 +0530 Subject: [PATCH 2/2] ci: cover openai-sdk-python in the Python test workflow The package was left out because its suite could not be collected against the current supermemory release, which was issue #1235. That was fixed by #1236, which caps supermemory to <3.5, so the suite now runs green on main: 24 passed, 11 skipped, with the skips gated on SUPERMEMORY_API_KEY. python-dotenv is a dev-group dependency imported at module scope by both test modules, so it is installed alongside pytest rather than relying on the package dependencies alone. --- .github/workflows/ci-python.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci-python.yml b/.github/workflows/ci-python.yml index 7c8baeae..c464d32e 100644 --- a/.github/workflows/ci-python.yml +++ b/.github/workflows/ci-python.yml @@ -4,6 +4,7 @@ on: pull_request: paths: - "packages/agent-framework-python/**" + - "packages/openai-sdk-python/**" - "packages/cartesia-sdk-python/**" - "packages/pipecat-sdk-python/**" - ".github/workflows/ci-python.yml" @@ -26,6 +27,11 @@ jobs: - package: agent-framework-python install: pip install -e . pytest pytest-asyncio test: pytest + # python-dotenv is a dev-group dependency the test modules import at + # module scope, so it has to be installed alongside pytest. + - package: openai-sdk-python + install: pip install -e . pytest pytest-asyncio python-dotenv + test: pytest # These suites stub their heavy runtime dependencies (cartesia-line, # pipecat-ai, loguru) at import time, so they run against the sources # with nothing installed and need no install step.