Skip to content

feat: add first-class Docker and Podman runtimes#154

Draft
cofin wants to merge 12 commits into
feat/provider-aware-cifrom
feat/podman-support
Draft

feat: add first-class Docker and Podman runtimes#154
cofin wants to merge 12 commits into
feat/provider-aware-cifrom
feat/podman-support

Conversation

@cofin

@cofin cofin commented Jul 22, 2026

Copy link
Copy Markdown
Member

Summary

  • resolve Docker or Podman through one Docker-compatible API transport with explicit and automatic selection
  • isolate managed containers by pytest session and serialize daemon-wide creation to fix concurrent port allocation races
  • preserve Docker fixture aliases while adding runtime-neutral APIs, explicit stale cleanup, documentation, and required cross-runtime conformance

Clientless boundary

No Podman SDK or database service client is added. Runtime operations use the existing Docker-compatible API; representative provider validation uses the containerized service.

CI scope

This branch targets feat/provider-aware-ci. Runtime conformance is selected only for runtime/dependency changes, runs Docker and rootless Podman plus PostgreSQL and overlapping xdist session checks, and reports through CI required.

Validation

  • uv run pre-commit run --all-files
  • uv run mypy
  • uv run pyright
  • uv run slotscheck src/pytest_databases
  • 30 focused runtime/ownership/host-port tests
  • 4 real Docker conformance tests, including overlapping xdist controller teardown
  • representative postgres_service smoke test
  • make docs

Closes #146
Closes #152

@cofin
cofin force-pushed the feat/podman-support branch from 76b9a31 to e106a3e Compare July 22, 2026 05:04
@codecov-commenter

codecov-commenter commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 45.82043% with 175 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (feat/provider-aware-ci@51a063d). Learn more about missing BASE report.

Files with missing lines Patch % Lines
src/pytest_databases/runtime.py 47.36% 87 Missing and 13 partials ⚠️
src/pytest_databases/_service.py 46.77% 63 Missing and 3 partials ⚠️
src/pytest_databases/__init__.py 0.00% 3 Missing ⚠️
src/pytest_databases/docker/yugabyte.py 0.00% 3 Missing ⚠️
src/pytest_databases/docker/minio.py 0.00% 1 Missing ⚠️
src/pytest_databases/docker/rustfs.py 0.00% 1 Missing ⚠️
src/pytest_databases/docker/spanner.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@                    Coverage Diff                    @@
##             feat/provider-aware-ci     #154   +/-   ##
=========================================================
  Coverage                          ?   11.95%           
=========================================================
  Files                             ?       24           
  Lines                             ?     2082           
  Branches                          ?      169           
=========================================================
  Hits                              ?      249           
  Misses                            ?     1798           
  Partials                          ?       35           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cofin
cofin force-pushed the feat/podman-support branch from e106a3e to 5eee24d Compare July 22, 2026 15:56
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.

2 participants