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

akvo / iwsims / #153
89%
main: 89%

Build:
Build:
LAST BUILD BRANCH: feature/77-akvo-flow-data-seeder
DEFAULT BRANCH: main
Ran 12 Sep 2026 02:28AM UTC
Jobs 1
Files 110
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

12 Sep 2026 02:23AM UTC coverage: 88.631% (+0.002%) from 88.629%
#153

push

coveralls-python

ifirmawan
[#77] Seed Akvo Flow RWS surveys with caddisfly, label aliases and repeat index

- Finalise question mappings for Flow 535151018 (Rural Water Point Survey)
  and 540671011 (School Form) onto the Rural Water Project MIS forms
- Fan every caddisfly Flow question out to the CBT number, risk option and
  CBT-bag photo questions per child form (generic rule in af_forms_mapping)
- Data notebook: option label aliases from label_aliases.json, cascade
  names on non-administration questions, repeat index "<id>-<n>" columns,
  caddisfly split (MPN, health risk, image) with enumerator values winning
- Seeder: parse "<id>-<n>" columns into Answers.index, store on-the-fly
  photos as /images/<file>, keep data CSVs intact on --limit runs, resolve
  Flow forms through the shared storage/akvo-flow/flow_forms.json
- Add administration_csv_seeder: additive import of the official Fiji
  hierarchy (name, level and parent matched; existing ids untouched)
- Administration mapper: key lookups on parent, accept merged province
  names, skip non-administration cascades, apply _administration aliases
- Add af_export_to_raw.py to build raw CSVs from a Flow Excel export while
  the Flow data endpoint is unavailable
- Notebooks and seeder share flow_forms.json; README and plan document
  describe the workflow

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Fix race condition in datapoint JSON file creation

Use tempfile.NamedTemporaryFile to create unique temporary files instead of using a fixed filename based on UUID. This prevents race conditions when multiple processes attempt to save the same datapoint simultaneously. The temporary file is properly cleaned up in a finally block after upload.

5822 of 6727 branches covered (86.55%)

Branch coverage included in aggregate %.

10713 of 11929 relevant lines covered (89.81%)

0.9 hits per line

Coverage Regressions

Lines Coverage ∆ File
16
82.0
-3.48% utils/seeder_config.py
14
85.33
0.17% utils/seeder_data_processor.py
10
82.33
0.36% api/v1/v1_data/management/commands/flow_data_seeder.py
8
89.94
2.07% utils/seeder_photo_downloader.py
6
95.43
0.04% api/v1/v1_data/models.py
3
94.14
0.0% utils/seeder_answer_processor.py
2
81.98
-0.1% utils/seeder_data_loader.py
1
98.43
-0.52% api/v1/v1_profile/models.py
Jobs
ID Job ID Ran Files Coverage
1 #153.1 12 Sep 2026 02:28AM UTC 110
88.63
Source Files on build #153
  • Tree
  • List 110
  • Changed 10
  • Source Changed 0
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 59cff24f 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