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

kobotoolbox / kpi / 29401879287
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: leszek/dev-1406-bulk-job-alert-nlp-view
DEFAULT BRANCH: master
Ran 15 Jul 2026 08:48AM UTC
Jobs 10
Files 894
Run time 2min
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

15 Jul 2026 08:44AM UTC coverage: 81.526% (+0.002%) from 81.524%
29401879287

push

github

web-flow
refactor(settings): standardize Constance env overrides to CONSTANCE_ prefix DEV-1976 (#7230)

### 🔗 Related PRs
Part of a 3-repo Constance env-var standardization:
- **kobotoolbox/kobo-install#279** — same rename in the kobo-install env
template
- **kobotoolbox/kobo-docker#373** — same rename in the kobo-docker
default env file

Backward compatibility is preserved (see below), so these can land
independently — the deploy-repo PRs simply complete the migration to the
new names.

### 📣 Summary
Standardize all Constance override env vars on a single `CONSTANCE_`
prefix.

### 📖 Description
The env vars that override Constance defaults used three conventions
(bare, `KOBO_`, `CONSTANCE_`). This unifies them on `CONSTANCE_`,
matching the existing `CONSTANCE_ASR_MT_GOOGLE_*` precedent.

Renamed:
- `KOBO_SUPPORT_EMAIL` → `CONSTANCE_SUPPORT_EMAIL`
- `KOBO_SUPPORT_URL` → `CONSTANCE_SUPPORT_URL`
- `KOBO_ACADEMY_URL` → `CONSTANCE_ACADEMY_URL`
- `KOBO_COMMUNITY_URL` → `CONSTANCE_COMMUNITY_URL`
- `USAGE_LIMIT_ENFORCEMENT` → `CONSTANCE_USAGE_LIMIT_ENFORCEMENT` (env
fallback in `base.py` + pytest `env` in `pyproject.toml`)

**Backward compatible:** each override reads the new
`CONSTANCE_`-prefixed variable and falls back to the deprecated name
(`KOBO_*` / bare) when it's unset, emitting a `DeprecationWarning` so
deployments know to migrate. Old env vars keep working — no hard break.

The fallback logic lives in a new `constance_env` helper in
`kobo/settings/utils.py`, moved out of `base.py` along with
`dj_stripe_request_callback_method`.

### ✅ Test plan
- [x] `test_api_environment.py` — both settings axes
- [x] usage-limit-enforcement tests (KPI submissions, OpenRosa,
subsequences)
- [x] deprecated env var still read + `DeprecationWarning` fired

9363 of 12695 branches covered (73.75%)

8 of 10 new or added lines in 2 files covered. (80.0%)

804 existing lines in 40 files now uncovered.

30405 of 37295 relevant lines covered (81.53%)

5.52 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
77.78
kobo/settings/utils.py

Coverage Regressions

Lines Coverage ∆ File
81
0.0
-93.1% kobo/apps/stripe/serializers.py
75
0.0
-41.9% kobo/apps/stripe/views.py
64
27.2
-51.2% kobo/apps/stripe/utils/subscription_limits.py
64
34.55
-58.18% kpi/views/v2/paired_data.py
63
32.52
-51.22% kobo/apps/accounts/forms.py
63
0.0
-51.64% kobo/apps/stripe/models.py
41
45.06
-9.43% kobo/apps/audit_log/models.py
38
34.52
-45.24% kobo/apps/audit_log/base_views.py
36
20.21
-38.3% kobo/apps/stripe/utils/billing_dates.py
27
0.0
-72.97% kobo/apps/accounts/adapter.py
20
52.38
-31.75% hub/models/extra_user_detail.py
20
0.0
-68.97% kobo/apps/audit_log/tasks.py
19
0.0
-65.52% kobo/apps/stripe/admin.py
19
49.25
-28.36% kpi/views/v2/user.py
16
60.0
-11.43% kobo/apps/audit_log/signals.py
16
84.68
-2.88% kobo/apps/openrosa/libs/utils/logger_tools.py
16
31.82
-36.36% kobo/apps/stripe/utils/limit_enforcement.py
13
37.14
-18.57% hub/utils/i18n.py
12
35.0
-60.0% kobo/apps/stripe/utils/import_management.py
11
0.0
-44.0% kobo/apps/stripe/signals.py
10
60.71
-35.71% kobo/apps/audit_log/utils.py
9
0.0
-29.03% kobo/apps/stripe/utils/manual_subscription.py
8
0.0
-100.0% kobo/apps/stripe/urls.py
7
0.0
-100.0% kobo/apps/stripe/apps.py
7
75.86
-24.14% kpi/views/v2/tag.py
6
0.0
-100.0% kobo/apps/stripe/exceptions.py
6
0.0
-37.5% kobo/apps/stripe/utils/view_utils.py
5
61.54
-38.46% kpi/views/v2/logout.py
5
73.91
-21.74% kpi/views/v2/user_asset_subscription.py
4
53.85
-30.77% kobo/apps/accounts/templatetags/customize_email_content.py
3
65.79
-7.89% kobo/apps/data_collectors/signals.py
3
31.43
-2.86% kobo/apps/organizations/admin/organization.py
3
61.21
-1.82% kobo/apps/organizations/models.py
3
60.53
-7.89% kobo/apps/organizations/utils.py
3
75.0
-25.0% kpi/views/v2/open_rosa.py
3
84.21
-15.79% kpi/views/v2/permission.py
2
88.24
-11.76% kpi/views/v2/service_usage.py
1
44.44
-5.56% kobo/apps/accounts/templatetags/get_provider_appname.py
1
92.31
-7.69% kobo/apps/user_reports/utils/migrations.py
1
72.73
-4.55% kpi/urls/__init__.py
Jobs
ID Job ID Ran Files Coverage
1 29401879287.1 15 Jul 2026 08:48AM UTC 890
44.41
2 29401879287.2 15 Jul 2026 08:49AM UTC 890
49.56
3 29401879287.3 15 Jul 2026 08:49AM UTC 890
52.97
4 29401879287.4 15 Jul 2026 08:50AM UTC 892
50.88
5 29401879287.5 15 Jul 2026 08:51AM UTC 892
45.76
6 29401879287.6 15 Jul 2026 08:51AM UTC 892
54.23
7 29401879287.7 15 Jul 2026 08:52AM UTC 890
59.22
8 29401879287.8 15 Jul 2026 08:52AM UTC 892
66.71
9 29401879287.9 15 Jul 2026 08:54AM UTC 892
60.38
10 29401879287.10 15 Jul 2026 08:54AM UTC 894
69.01
Source Files on build 29401879287
  • Tree
  • List 894
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 08edb9f9 on github
  • Prev Build on main (#29357552883)
  • Next Build on main (#29401900122)
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