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

akvo / akvo-mis / #1478
91%

Build:
DEFAULT BRANCH: main
Ran 14 Oct 2026 04:27AM UTC
Jobs 1
Files 154
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 Oct 2026 04:11AM UTC coverage: 90.568% (-0.2%) from 90.759%
#1478

push

coveralls-python

web-flow
[#541] Upgrade prep and Django 4.0 → 4.2 LTS (Python 3.8) (#546)

* [#541] Fail the test suite on any Django deprecation warning

Each upgrade step must leave nothing the next Django release removes,
so the suite becomes the work list. Categories are discovered from
`django.utils.deprecation` because their names change every release.
A custom runner is needed: unittest otherwise resets warning filters
to "default" for the run and silently disarms the gate.

Third-party deprecations stay warnings. django-q's `baseconv` import is
ignored by message until django-q2 replaces it.

* [#541] Lock every backend dependency, transitive ones included

Only direct dependencies were pinned and `openai` not even that, so
any upgrade step could pull in a moved package and blur which change
caused a regression. Direct dependencies move to `requirements.in`;
`requirements.txt` is now generated by `uv pip compile` and pins all
92 packages at the versions the current image runs.

uv is needed only to re-lock. Images, `run.sh` and CI still install
with pip. `backports.zoneinfo` and `six` leave the direct list: they
arrive through Django and python-dateutil.

* [#541] Add a command that snapshots exports and compares them

The upgrade's riskiest changes land in data exports (pandas 2, and
Django 6.1 no longer ordering `first()`/`last()` by primary key), and
the suite asserts little about export contents. `export_snapshot`
writes each registration form's data download and blank template, and
`--compare` diffs them cell by cell against a pre-upgrade reference.

The context sheet is skipped because it carries the download
timestamp, which keeps the output a pure function of the database.

* [#541] Upgrade pandas to 1.5.3 and fail tests on its FutureWarnings

pandas 1.5.3 is the last 1.x release and still runs on Python 3.8, and
it announces nearly every API pandas 2.0 removes as a FutureWarning.
Gating those now surfaces pandas 2 breakage before the Python upgrade,
where it ... (continued)

8845 of 10004 branches covered (88.41%)

Branch coverage included in aggregate %.

16064 of 17499 relevant lines covered (91.8%)

0.92 hits per line

Coverage Regressions

Lines Coverage ∆ File
5
90.08
-0.09% mis/settings.py
2
94.69
0.97% utils/custom_generator.py
1
99.17
-0.42% api/v1/v1_profile/models.py
Jobs
ID Job ID Ran Files Coverage
1 #1478.1 14 Oct 2026 04:27AM UTC 154
90.57
Source Files on build #1478
  • Tree
  • List 154
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 881bc247 on github
  • Prev Build on main
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