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

kobotoolbox / kpi / 17764863374 / 2
81%
master: 76%

Build:
Build:
LAST BUILD BRANCH: beccagraber/dev-1453-run-external-process
DEFAULT BRANCH: master
Ran 16 Sep 2025 12:28PM UTC
Files 861
Run time 37s
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

16 Sep 2025 11:53AM UTC coverage: 81.229% (+2.3%) from 78.915%
17764863374.2

push

github

web-flow
fix(dataCollectors): set correct redis entries DEV-798 (#6228)

### 💭 Notes
Fixes a mistake in how we were manipulating enketo-generated redis
entries for data collectors. When we POST to <enketo>/surveys/all, it
generates a simple string redis entry for the key `or:<url>,<xform_id>`,
NOT a hash at the key `or:<url>` that has a field called `xform_id.` We
were actually creating a new entry with the new longer url hash key
instead of updating the one that enketo creates.


### 👀 Preview steps
This is basically a regression test except using the correct redis keys.
If you've been testing other PRs for this project, it's a good idea to
clean out your redis entries first and start fresh. At least delete any
keys starting with "or:http".

1. Open a django shell and a redis-cli
2. In the django shell, run `set_data_collector_enketo_links('token_a',
['uid_0', 'uid_1'])`
3. 🟢 In redis run `keys "or:http*"`. The result should be empty. 
4. In redis, run `get "or:<kobo_url>/key/token_a,uid_0"` and make note
of the 31-char hash you get back
5. In a browser, navigate to <enketo_url>/x/<31-char hash>
6. 🟢 You should get a response Request to
http://kf.kobo.local:8080/key/token_a/formList?formID=uid_0 failed. This
means it generated the correct request, but we haven't set up
authentication yet so we expect it to fail
7. Repeat steps 3-5 with "uid_1"
8. In the django shell, run
`rename_data_collector_enketo_links('token_a', 'token_b')`
9. Navigate to the same urls you used in enketo earlier (using the 31
char hashes)
10. 🟢 You should get a response Request to
http://kf.kobo.local:8080/key/token_b/formList?formID=uid_0 failed.
(note the changed token)
11. In the django shell, run
`remove_data_collector_enketo_links('token_b', ['uid_1'])`
12. Navigate to the enketo url you used for uid_1
13. 🟢 You should get a response Survey with this ID not found (because
the entry in redis for this token/asset has been removed)
14. In the django shell, run
`remove_data_collector_en... (continued)

6935 of 10911 branches covered (63.56%)

26640 of 32796 relevant lines covered (81.23%)

0.81 hits per line

Source Files on job 17764863374.2
  • Tree
  • List 861
  • Changed 30
  • Source Changed 0
  • Coverage Changed 30
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 17764863374
  • 5d356123 on github
  • Prev Job for on main (#17764845739.1)
  • Next Job for on main (#17764845739.1)
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