• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tschm / pytest-alembic / 32878163292
95%
main: 100%

Build:
Build:
LAST BUILD BRANCH: fix/lazy-asyncio-import
DEFAULT BRANCH: main
Ran 25 Aug 2026 05:30PM UTC
Jobs 1
Files 17
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

25 Aug 2026 04:46PM UTC coverage: 94.609% (-0.02%) from 94.633%
32878163292

push

github

tschm
docs: document every symbol, taking docstring coverage to 100%

The interrogate ratchet stood at 70% against a measured 71.7%, with 34 of 120
symbols undocumented. This documents all 34 and moves `fail-under` to 100, so the
floor is now the measured number and cannot silently erode.

Eight module docstrings say what each module is *for* and how it relates to its
neighbours — the two executors, the flattened history, the revision data, the
configuration surface, the fixtures, the default tests, and the two experimental
ones. The rest are the functions that carry real behaviour worth explaining:

- `CommandExecutor.run_command` — why stderr is discarded, and why the buffer
  position is recorded before the command rather than read from the start.
- `ConnectionExecutor.table` / `table_insert` — the per-revision reflection cache,
  and the `__tablename__` key that overrides the `tablename` argument.
- `AlembicHistory.validate_revision` and the four walk methods — `head` coercing
  to `heads`, and what `None` means at each end of the range.
- `check_revision_cycle` — why the comparison is between two rendered DDL diffs
  rather than two reflected `MetaData` objects, and why every step rolls back even
  on success.
- `WrappingConnection` — that alembic's `env.py` calls `connect()`, which would
  otherwise open a second connection outside the test's open transaction.
- `Config.make_alembic_config`, `duplicate_alembic_config`, `parse_collection_output`,
  `url_to_string`, `create_connectable` and the remaining constructors.

Two doctests come with them, on `revision_window` and `set_revision`; `pytest`
runs docstrings under `--doctest-modules`, so both are executed rather than
decorative. Test count goes 122 to 124.

No behaviour changes: `make lint` and `make test` pass, `make docs-coverage`
reports 120/120.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

197 of 222 branches covered (88.74%)

Branch coverage included in aggregate %.

856 of 891 relevant lines covered (96.07%)

11.53 hits per line

Coverage Regressions

Lines Coverage ∆ File
7
93.6
-0.05% src/pytest_alembic/tests/experimental/all_models_register_on_metadata.py
6
89.86
0.05% src/pytest_alembic/plugin/plugin.py
6
94.05
-0.03% src/pytest_alembic/runner.py
4
90.28
0.0% src/pytest_alembic/tests/experimental/collect_clean_alembic_environment.py
3
96.75
-0.03% src/pytest_alembic/executor.py
2
94.52
0.0% src/pytest_alembic/config.py
1
94.59
0.0% src/pytest_alembic/revision_data.py
1
98.59
0.0% src/pytest_alembic/tests/experimental/downgrade_leaves_no_trace.py
Jobs
ID Job ID Ran Files Coverage
1 run- - 32878163292.1 25 Aug 2026 05:31PM UTC 17
94.61
GitHub Action Run
Source Files on build 32878163292
  • Tree
  • List 17
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 9e6da7b6 on github
  • Prev Build on docs/docstring-coverage-100 (#32861373584)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc