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

kobotoolbox / kpi / 30098672441
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: hugo/dev-2488-digest-auth-content-type
DEFAULT BRANCH: master
Ran 24 Jul 2026 01:57PM UTC
Jobs 10
Files 896
Run time 3min
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

24 Jul 2026 01:52PM UTC coverage: 81.785% (-0.03%) from 81.817%
30098672441

push

github

web-flow
feat(massEmails): add llm requests to mass email queries DEV-2480 (#7303)

### đŸ“Ŗ Summary
Add a Mass email config for sending emails to users who are above
various thresholds in LLM usage.


### 👀 Preview steps
Make sure Stripe and NLP features are enabled and you have
MASS_EMAIL_CONDENSE_SEND=True.

1. â„šī¸ have an admin account and at least one user on the Community plan
2. â„šī¸ As the user on the community plan, have a survey with at least one
audio question
3. Add a submission and some QA questions. Use AI to answer at least 2.
4. In Django admin, update the community plan product metadata to have
`"llm_requests_limit" : "1"`
5. In Django admin, create a new mass email config using the
`users_above_100_percent_autoqa_usage` query and set it live
6. đŸŸĸ [on PR] at the next 15 minute boundary (or a minute or 2 after) the
user on the community plan should get an email.

9474 of 12794 branches covered (74.05%)

3 of 6 new or added lines in 1 file covered. (50.0%)

2393 existing lines in 75 files now uncovered.

30698 of 37535 relevant lines covered (81.79%)

5.51 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
35.0
1.22% kobo/apps/mass_emails/user_queries.py

Coverage Regressions

Lines Coverage ∆ File
312
0.0
-91.23% kobo/apps/openrosa/apps/viewer/pandas_mongo_bridge.py
209
19.15
-51.99% kobo/apps/openrosa/libs/utils/export_tools.py
206
0.0
-86.19% kobo/apps/openrosa/libs/utils/briefcase_client.py
159
58.92
-28.65% kobo/apps/openrosa/libs/utils/logger_tools.py
87
0.0
-87.88% kobo/apps/openrosa/libs/utils/backup_tools.py
81
0.0
-93.1% kobo/apps/stripe/serializers.py
75
0.0
-41.9% kobo/apps/stripe/views.py
68
27.2
-54.4% kobo/apps/stripe/utils/subscription_limits.py
66
33.33
-59.46% kobo/apps/openrosa/apps/viewer/views.py
63
0.0
-51.64% kobo/apps/stripe/models.py
58
0.0
-90.63% kobo/apps/openrosa/libs/data/query.py
50
0.0
-47.17% kobo/apps/openrosa/apps/logger/tasks.py
49
51.59
-38.89% kobo/apps/openrosa/apps/logger/signals.py
49
28.57
-43.75% kobo/apps/openrosa/apps/logger/views.py
44
20.21
-46.81% kobo/apps/stripe/utils/billing_dates.py
42
46.47
-15.61% kobo/apps/openrosa/apps/viewer/models/data_dictionary.py
41
40.69
-6.75% kpi/deployment_backends/openrosa_backend.py
40
0.0
-40.82% kobo/apps/openrosa/apps/viewer/xls_writer.py
40
23.29
-54.79% kobo/apps/openrosa/libs/utils/image_tools.py
39
23.08
-30.0% kobo/apps/openrosa/apps/viewer/tasks.py
36
24.49
-73.47% kobo/apps/openrosa/apps/logger/import_tools.py
35
24.11
-31.25% kobo/apps/openrosa/apps/logger/utils/instance.py
33
49.51
-32.04% kobo/apps/openrosa/apps/viewer/models/export.py
32
58.33
-13.33% kobo/apps/openrosa/apps/viewer/models/parsed_instance.py
30
58.33
-25.0% kobo/apps/openrosa/apps/logger/models/attachment.py
28
30.14
-19.18% kobo/apps/openrosa/libs/utils/viewer_tools.py
28
28.01
-9.12% kpi/views/v2/data.py
27
62.73
-12.27% kpi/permissions.py
25
0.0
-34.25% kobo/apps/stripe/signals.py
24
33.33
-66.67% kobo/apps/openrosa/libs/utils/decorators.py
20
29.67
-21.98% kobo/apps/openrosa/libs/utils/user_auth.py
19
0.0
-65.52% kobo/apps/stripe/admin.py
17
16.22
-45.95% kobo/apps/openrosa/apps/logger/utils/database_query.py
16
31.82
-36.36% kobo/apps/stripe/utils/limit_enforcement.py
15
31.71
-36.59% kobo/apps/openrosa/apps/logger/xform_fs.py
15
81.64
-5.86% kobo/apps/openrosa/apps/logger/xform_instance_parser.py
14
47.62
-8.33% kobo/apps/openrosa/apps/main/models/meta_data.py
14
44.0
-56.0% kobo/apps/openrosa/libs/utils/model_tools.py
12
44.9
-24.49% kobo/apps/openrosa/apps/logger/utils/counters.py
12
35.0
-60.0% kobo/apps/stripe/utils/import_management.py
11
54.84
-35.48% kobo/apps/openrosa/libs/authentication.py
11
45.16
-17.74% kpi/views/v2/attachment.py
10
77.44
-5.13% kobo/apps/openrosa/apps/logger/models/instance.py
10
72.2
-4.88% kpi/utils/mongo_helper.py
9
77.49
-4.71% kobo/apps/openrosa/apps/logger/models/xform.py
9
0.0
-29.03% kobo/apps/stripe/utils/manual_subscription.py
9
41.18
-52.94% kpi/utils/viewset_mixins.py
8
0.0
-100.0% kobo/apps/stripe/urls.py
7
0.0
-100.0% kobo/apps/stripe/apps.py
7
65.19
-1.73% kpi/deployment_backends/base_backend.py
6
0.0
-100.0% kobo/apps/stripe/exceptions.py
6
0.0
-37.5% kobo/apps/stripe/utils/view_utils.py
5
84.75
-8.47% kobo/apps/openrosa/apps/logger/exceptions.py
5
72.22
-27.78% kobo/apps/openrosa/apps/logger/models/daily_xform_submission_counter.py
5
75.0
-25.0% kobo/apps/openrosa/apps/logger/models/monthly_xform_submission_counter.py
5
0.0
-38.46% kobo/apps/openrosa/apps/main/context_processors.py
4
53.56
-0.92% kobo/apps/audit_log/models.py
4
45.45
-36.36% kobo/apps/openrosa/koboform/__init__.py
3
69.29
-2.14% kobo/apps/audit_log/signals.py
3
95.76
-2.54% kobo/apps/openrosa/apps/api/viewsets/xform_submission_api.py
3
80.0
-20.0% kobo/apps/openrosa/apps/viewer/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
2
83.33
-6.67% kobo/urls.py
2
91.33
-0.35% kpi/models/asset.py
2
39.76
-2.41% kpi/utils/storage.py
1
78.57
-1.19% kobo/apps/audit_log/base_views.py
1
0.0
-100.0% kobo/apps/openrosa/apps/logger/constants.py
1
91.3
-4.35% kobo/apps/openrosa/libs/permissions.py
1
94.12
-1.18% kobo/apps/openrosa/libs/renderers/renderers.py
1
68.75
-6.25% kobo/apps/openrosa/libs/utils/string.py
1
92.31
-7.69% kobo/apps/user_reports/utils/migrations.py
1
67.95
-1.28% kpi/authentication.py
1
72.73
-4.55% kpi/urls/__init__.py
Jobs
ID Job ID Ran Files Coverage
1 30098672441.1 24 Jul 2026 01:57PM UTC 892
44.24
2 30098672441.2 24 Jul 2026 01:57PM UTC 892
52.8
3 30098672441.3 24 Jul 2026 01:59PM UTC 894
54.06
4 30098672441.4 24 Jul 2026 01:59PM UTC 892
49.36
5 30098672441.5 24 Jul 2026 02:00PM UTC 894
50.69
6 30098672441.6 24 Jul 2026 02:00PM UTC 892
58.99
7 30098672441.7 24 Jul 2026 02:01PM UTC 894
66.99
8 30098672441.8 24 Jul 2026 02:02PM UTC 894
45.6
9 30098672441.9 24 Jul 2026 02:03PM UTC 894
60.15
10 30098672441.10 24 Jul 2026 02:03PM UTC 896
69.37
Source Files on build 30098672441
  • Tree
  • List 896
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 3f04cdf1 on github
  • Prev Build on main (#30097357955)
  • Next Build on main (#30099477289)
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