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

openvax / datacache / 27786378336
79%

Build:
DEFAULT BRANCH: master
Ran 18 Jun 2026 08:10PM UTC
Jobs 3
Files 9
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

18 Jun 2026 08:10PM UTC coverage: 79.043% (+5.6%) from 73.451%
27786378336

push

github

web-flow
Make test_download.py hermetic; remove dead wget path; harden zip/gz decompress (closes #42) (#56)

* Make test_download.py hermetic; remove dead wget download path (closes #42)

test_fetch_decompress hit a live Ensembl FTP server and looped over
use_wget_if_available/timeout while the file was only downloaded once — so the
result depended on iteration order (the flakiness in #42), and CI was noisy.

- Rewrite the tests to serve a local .gz over file:// with the cache redirected
  to a tmp dir (the pattern test_streaming_download.py already uses): no network,
  no cross-run cached state. Adds deterministic cache-reuse + force coverage.
- Remove the wget download path: subprocess.call's non-zero exit was ignored
  (silent partial downloads), and the modernization's streaming Python
  downloader (_stream_to_file, #49) already handles http(s) and ftp. Drops the
  subprocess/errno imports and the wget threading through the private helpers.
- Keep use_wget_if_available on the public fetch_file / Cache.fetch as a
  deprecated, ignored no-op (warns when explicitly passed) so callers don't break.

No version bump — leaving the release/version decision to the maintainer.

* Harden zip/gz decompression; add zip test + tighten deprecation test

Addressing review of #42:
- Stream the chosen zip member straight to the destination via z.open() +
  copyfileobj, replacing ZipFile.extract() which wrote into the current working
  directory and recreated the member's stored path (cwd-pollution + a "../"
  path-traversal footgun). Member selection (named match, else biggest) is
  unchanged.
- Stream the gunzip to disk instead of reading the whole decompressed file into
  memory — consistent with the streaming download goal (#49).
- Add a .zip decompression test (previously only .gz was covered) that also
  asserts nothing leaks into the cwd, and pin the deprecation warning message
  with pytest.warns(match=...).

* Decompress atomically (sibling temp + move) so corrupt a... (continued)

23 of 23 new or added lines in 2 files covered. (100.0%)

1 existing line in 1 file now uncovered.

347 of 439 relevant lines covered (79.04%)

2.37 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
82.05
19.74% datacache/download.py
Jobs
ID Job ID Ran Files Coverage
1 27786378336.1 18 Jun 2026 08:10PM UTC 9
79.04
GitHub Action Run
2 27786378336.2 18 Jun 2026 08:10PM UTC 9
79.04
GitHub Action Run
3 27786378336.3 18 Jun 2026 08:11PM UTC 9
79.0
GitHub Action Run
Source Files on build 27786378336
  • Tree
  • List 9
  • Changed 3
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27786378336
  • b8cb2257 on github
  • Prev Build on master (#27778483053)
  • Next Build on master (#27786384221)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc