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

kobotoolbox / kpi / 36636413001
83%
master: 76%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 29 Sep 2026 09:59PM UTC
Jobs 10
Files 920
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

29 Sep 2026 09:55PM UTC coverage: 83.083%. Remained the same
36636413001

push

github

web-flow
refactor(auth): make more generic AuthAside, and AuthPageFrame DEV-1850 (#7612)

### 💭 Notes

Groundwork for a route blocker - it will add a "complete your profile
details" screen that has to look like the other authentication screens
but is reached after login, outside the `/auth` routes. Two pieces it
needs were split out:

- `AuthPageFrame` - the background, logo, language picker and legal
links, lifted out of `AuthContainer`. `AuthContainer` is now just the
`/auth` layout route: the frame around an `<Outlet/>`.
- `AuthAside` - `RegisterRoute/RegisterAside` made generic and moved
next to `AuthCard`, plus `shouldRenderAuthAside()` so a screen can
decide whether to open the column at all.
- `useEnvironmentQuery` - to avoid making multiple calls to environment
endpoint

Pure refactor, no behavior change intended.

### 👀 Preview steps

1. â„šī¸ needs the `authRedesignEnabled` feature flag on
2. go to `/#/auth/register`
3. đŸŸĸ notice the background, logo, language picker and Terms/Privacy
links are unchanged from main
4. â„šī¸ in Django admin, clear both the login supporting image and the
`welcome_message` sitewide message
5. đŸŸĸ notice the card is one column wide, with no divider
6. â„šī¸ set either one back
7. đŸŸĸ notice the supporting column returns, and the card widens as before
8. đŸŸĸ notice tab order through logo → language picker → form → footer
links is unchanged

10449 of 13809 branches covered (75.67%)

33338 of 40126 relevant lines covered (83.08%)

5.51 hits per line

Coverage Regressions

Lines Coverage ∆ File
196
26.4
-55.06% kpi/serializers/v2/asset_permission_assignment.py
191
64.19
-29.61% kpi/serializers/v2/asset.py
170
47.22
-27.78% kpi/deployment_backends/openrosa_backend.py
139
37.13
-45.28% kpi/views/v2/data.py
122
55.51
-27.42% kobo/apps/audit_log/models.py
120
69.95
-16.17% kpi/models/import_export_task.py
100
61.99
-26.95% kpi/views/v2/asset.py
91
29.45
-62.33% kpi/serializers/v2/asset_file.py
73
26.89
-61.34% kpi/serializers/v2/paired_data.py
70
30.16
-55.56% kpi/serializers/v2/export_task.py
64
67.38
-15.24% kpi/deployment_backends/base_backend.py
64
34.55
-58.18% kpi/views/v2/paired_data.py
62
25.16
-40.0% kobo/apps/trash_bin/utils/trash.py
59
44.07
-50.0% kpi/views/v2/environment.py
57
27.43
-50.44% kpi/utils/models.py
48
75.0
-21.82% kpi/permissions.py
46
32.21
-14.11% kobo/apps/subsequences/models.py
43
56.81
-20.19% kpi/filters.py
42
49.47
-44.21% kpi/views/v2/asset_permission_assignment.py
41
52.78
-18.98% kpi/renderers.py
41
65.85
-33.33% kpi/utils/usage_calculator.py
41
43.7
-30.37% kpi/views/v2/asset_snapshot.py
40
44.96
-31.01% kobo/apps/project_views/views.py
33
66.4
-26.4% kpi/models/paired_data.py
32
31.03
-18.39% kobo/apps/project_ownership/utils.py
32
50.75
-47.76% kpi/views/v2/asset_export_settings.py
31
61.54
-23.85% kobo/apps/openrosa/apps/logger/utils/instance.py
31
36.46
-17.13% kpi/serializers/current_user.py
31
8.11
-83.78% kpi/utils/ss_structure_to_mdtable.py
29
51.61
-31.18% kobo/apps/accounts/mfa/views.py
27
83.0
-13.5% kpi/utils/xml.py
26
27.5
-65.0% kpi/serializers/v2/attachment_delete.py
25
31.11
-55.56% kpi/serializers/v2/data.py
24
59.32
-40.68% kpi/views/v2/export_task.py
23
41.86
-53.49% kpi/serializers/v2/deployment.py
23
71.43
-27.38% kpi/serializers/v2/service_usage.py
22
50.98
-43.14% kpi/serializers/v2/asset_snapshot.py
22
55.56
-40.74% kpi/serializers/v2/permission.py
21
77.67
-10.19% kobo/apps/project_ownership/models/transfer.py
21
48.84
-48.84% kobo/apps/trash_bin/models/project.py
21
38.33
-35.0% kpi/serializers/v2/asset_export_settings.py
19
33.33
-63.33% kpi/utils/paired_data.py
19
51.06
-40.43% kpi/views/v2/import_task.py
19
49.25
-28.36% kpi/views/v2/user.py
18
17.7
-15.93% kobo/apps/subsequences/actions/mixins.py
18
69.23
-23.08% kpi/authentication.py
18
48.65
-48.65% kpi/views/v2/attachment_audio_duration.py
17
44.12
-50.0% kpi/utils/rename_xls_sheet.py
16
57.14
-22.86% hub/utils/i18n.py
16
35.91
-6.18% kobo/apps/subsequences/actions/base.py
16
55.81
-37.21% kpi/backends.py
16
75.21
-13.68% kpi/models/asset_snapshot.py
16
28.0
-64.0% kpi/utils/audio_duration.py
16
62.9
-25.81% kpi/views/v2/attachment.py
15
27.91
-34.88% kobo/apps/accounts/mfa/flows.py
15
67.74
-24.19% kobo/apps/hook/models/hook.py
15
28.57
-71.43% kobo/apps/trash_bin/utils/signals.py
15
73.68
-26.32% kpi/views/v2/asset_file.py
14
85.29
-13.73% kpi/models/asset_file.py
13
27.69
-10.0% kobo/apps/project_ownership/tasks.py
13
40.0
-43.33% kpi/serializers/v2/asset_counts.py
13
79.05
-12.38% kpi/utils/object_permission.py
13
30.43
-56.52% kpi/utils/private_storage.py
12
0.0
-92.31% kobo/apps/accounts/mfa/adapter.py
12
83.33
-10.0% kobo/apps/openrosa/apps/logger/models/attachment.py
12
63.98
-7.45% kobo/apps/stripe/utils/subscription_limits.py
12
57.14
-42.86% kobo/apps/subsequences/utils/supplement_data.py
12
91.65
-2.04% kpi/models/asset.py
11
75.93
-20.37% kpi/serializers/v2/user.py
10
79.76
-11.9% kobo/apps/audit_log/base_views.py
10
71.43
-7.14% kobo/apps/audit_log/signals.py
10
20.55
-13.7% kobo/apps/stripe/signals.py
10
33.33
-37.04% kpi/mixins/audio_transcoding.py
10
63.33
-33.33% kpi/views/v2/asset_version.py
9
40.3
-13.43% kobo/apps/accounts/mfa/models.py
9
47.73
-20.45% kobo/apps/trash_bin/models/attachment.py
9
77.07
-4.39% kpi/utils/mongo_helper.py
8
91.05
-4.21% kobo/apps/openrosa/apps/api/viewsets/xform_list_api.py
8
56.57
-8.08% kobo/apps/stripe/utils/billing_dates.py
8
85.71
-11.43% kpi/utils/cache.py
7
81.08
-18.92% kobo/apps/project_views/serializers.py
7
92.92
-1.91% kpi/mixins/object_permission.py
7
52.94
-41.18% kpi/serializers/v2/reports.py
7
61.9
-16.67% kpi/utils/urls.py
7
74.07
-25.93% kpi/views/v2/attachment_delete.py
6
69.12
-4.41% kpi/utils/autoname.py
5
62.07
-5.75% kpi/tasks.py
5
76.0
-20.0% kpi/views/v2/asset_submission_counts.py
5
61.54
-38.46% kpi/views/v2/logout.py
5
73.91
-21.74% kpi/views/v2/user_asset_subscription.py
4
71.03
-3.74% kobo/apps/accounts/forms.py
4
74.0
-8.0% kobo/apps/audit_log/serializers.py
4
63.27
-8.16% kobo/apps/hook/views/v2/hook_log.py
4
80.0
-16.0% kobo/apps/openrosa/apps/logger/utils/attachment.py
4
69.9
-2.04% kpi/mixins/formpack_xlsform_utils.py
4
75.94
-3.01% kpi/paginators.py
4
76.19
-19.05% kpi/serializers/v2/user_asset_subscription.py
4
83.33
-16.67% kpi/views/v2/tag.py
3
59.32
-5.08% kobo/apps/hook/views/v2/hook.py
3
62.16
-8.11% kobo/apps/openrosa/apps/logger/utils/database_query.py
3
64.88
-1.79% kobo/apps/openrosa/apps/main/models/meta_data.py
3
63.33
-5.0% kobo/apps/openrosa/apps/main/models/user_profile.py
3
70.0
-30.0% kpi/fields/serializer_method_file.py
3
80.95
-14.29% kpi/fields/writable_json.py
3
80.0
-20.0% kpi/serializers/v2/attachment_audio_duration.py
3
85.37
-7.32% kpi/utils/submission.py
3
75.0
-25.0% kpi/views/v2/open_rosa.py
3
84.21
-15.79% kpi/views/v2/permission.py
2
70.93
-2.33% kobo/apps/accounts/adapter.py
2
60.0
-40.0% kobo/apps/audit_log/filters.py
2
67.97
-1.56% kobo/apps/audit_log/views.py
2
65.31
-4.08% kobo/apps/hook/models/hook_log.py
2
87.5
-12.5% kobo/apps/hook/serializers/v2/hook_log.py
2
56.25
-4.17% kobo/apps/hook/serializers/v2/hook.py
2
78.43
-3.92% kobo/apps/kobo_auth/models.py
2
73.74
-1.01% kobo/apps/openapi_validator/middleware.py
2
78.08
-2.74% kobo/apps/openrosa/libs/utils/image_tools.py
2
88.34
0.3% kobo/apps/openrosa/libs/utils/logger_tools.py
2
61.08
-1.08% kobo/apps/organizations/models.py
2
85.71
-14.29% kpi/mixins/asset.py
2
66.67
-16.67% kpi/mixins/validation_password_permission.py
2
81.82
-18.18% kpi/serializers/v2/tag.py
2
96.55
-2.3% kpi/utils/asset_content_analyzer.py
2
91.43
-5.71% kpi/utils/project_views.py
2
96.32
-1.05% kpi/utils/query_parser/query_parser.py
2
85.92
-2.82% kpi/utils/sluggify.py
2
88.24
-11.76% kpi/views/v2/service_usage.py
1
85.51
-1.45% hub/models/extra_user_detail.py
1
63.64
-9.09% kobo/apps/accounts/mfa/permissions.py
1
89.47
-5.26% kobo/apps/audit_log/middleware.py
1
90.48
-0.79% kobo/apps/openrosa/apps/logger/signals.py
1
88.85
-0.35% kobo/apps/openrosa/apps/logger/xform_instance_parser.py
1
74.58
-0.42% kobo/apps/openrosa/apps/viewer/models/parsed_instance.py
1
84.27
-1.12% kobo/apps/reports/report_data.py
1
75.0
-25.0% kpi/fields/read_only.py
1
82.61
-4.35% kpi/fields/relative_prefix_hyperlinked_related.py
1
90.0
-10.0% kpi/mixins/mfa.py
1
95.65
-2.17% kpi/serializers/v2/asset_version.py
1
50.0
-50.0% kpi/utils/export_task.py
1
75.0
-25.0% kpi/utils/gravatar_url.py
1
88.73
-1.41% kpi/utils/hash.py
1
94.12
-5.88% kpi/utils/strings.py
1
84.62
-7.69% kpi/versioning.py
1
55.56
-2.22% kpi/views/current_user.py
1
93.33
-6.67% kpi/views/v2/asset_usage.py
Jobs
ID Job ID Ran Files Coverage
1 36636413001.1 29 Sep 2026 09:59PM UTC 915
49.65
2 36636413001.2 29 Sep 2026 09:59PM UTC 915
43.6
3 36636413001.3 29 Sep 2026 10:00PM UTC 917
50.9
4 36636413001.4 29 Sep 2026 10:00PM UTC 915
52.67
5 36636413001.5 29 Sep 2026 10:03PM UTC 917
44.88
6 36636413001.6 29 Sep 2026 10:03PM UTC 915
58.48
7 36636413001.7 29 Sep 2026 10:03PM UTC 917
53.92
8 36636413001.8 29 Sep 2026 10:04PM UTC 918
67.99
9 36636413001.9 29 Sep 2026 10:05PM UTC 917
59.56
10 36636413001.10 29 Sep 2026 10:05PM UTC 920
70.32
Source Files on build 36636413001
  • Tree
  • List 920
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 54865f15 on github
  • Prev Build on main (#36619933267)
  • Next Build on main (#36734187808)
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