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

openvax / topiary / 34867367448-1
92%
master: 92%

Build:
Build:
LAST BUILD BRANCH: fix-declared-deps-and-dead-surface
DEFAULT BRANCH: master
Ran 14 Sep 2026 04:22PM UTC
Jobs 1
Files 43
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

14 Sep 2026 04:14PM UTC coverage: 92.126% (-0.01%) from 92.138%
34867367448-1

Pull #311

github

iskandr
Give CachedPredictorCoverageError a __str__; catch RuntimeError in the CLI

A review of 5.56.1 found that my "test gap closed" claim was only half
true, and that the fix sat at the wrong layer. Both confirmed by running
them.

The vacuous assertion. The check meant to guard the coverage-error
unwrap was:

    assert "\"'CachedPredictor" not in captured.err

KeyError's str() reprs its argument, and repr picks double quotes when
the text itself contains single ones - which both coverage messages do
("Missed peptides: ['GILGFVFTL']", and {peptide!r}). So the unquoted
form starts with "C, never "'C, and that assertion could not fail in
either direction. Confirmed by deleting the entire unwrap branch: all
five CLI tests stayed green. The OSError test added in 5.56.1 was
genuinely effective; this one was not.

The wrong layer. The CLI was special-casing one exception's formatting,
so every non-CLI caller still got the quoted message - a library user or
vaxrank reading a traceback saw

    CachedPredictorCoverageError: "CachedPredictor: 'SIINFEKLA' occurs ..."

quotes and all, with newlines as literal \n. The class now defines
__str__ returning its single argument, so the readable form reaches
tracebacks, logs and the CLI alike, and falls back to KeyError's default
for the multi-arg case rather than silently dropping the extra args.

The CLI's unwrap is gone with it. That unwrap is what needed a type
guard to avoid printing OSError's errno, the guard got dropped once
while an adjacent comment was edited, and there is now no guard left to
drop: str(e) is correct for every type the handler catches. The
5.56.0/5.56.1 regression shape is structurally gone, not just patched.

RuntimeError added to the handler. mhcflurry_composite_version raises it
for setup the user has to finish - "mhcflurry has no active model
release. Run `mhcflurry-downloads fetch`" - and that advice was reaching
CLI users as a stack trace, despite the old comment calling the coverage
error "... (continued)
Pull Request #311: Give CachedPredictorCoverageError a __str__; catch RuntimeError in the CLI

6 of 7 new or added lines in 3 files covered. (85.71%)

48 existing lines in 2 files now uncovered.

7125 of 7734 relevant lines covered (92.13%)

0.92 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
90.82
-0.12% topiary/cached.py

Coverage Regressions

Lines Coverage ∆ File
45
90.82
-0.12% topiary/cached.py
3
78.95
-2.87% topiary/cli/script.py
Jobs
ID Job ID Ran Files Coverage
1 34867367448-1.1 14 Sep 2026 04:22PM UTC 43
92.13
GitHub Action Run
Source Files on build 34867367448-1
  • Tree
  • List 43
  • Changed 3
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34867367...
  • Pull Request #311
  • PR Base - master (#34803732...)
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