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

kobotoolbox / kpi / 26084578985
81%
master: 76%

Build:
Build:
LAST BUILD BRANCH: dev-837-merge-routers-into-one
DEFAULT BRANCH: master
Ran 19 May 2026 08:10AM UTC
Jobs 10
Files 912
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

19 May 2026 08:06AM UTC coverage: 81.724%. Remained the same
26084578985

push

github

web-flow
fix(settings): apply AWS settings without explicit credentials DEV-2002 (#7017)

### 💭 Notes

Related: https://github.com/kobotoolbox/kobo-install/pull/274

**S3 mock in tests (`test(storage)` commit)**

A `mock_s3_when_needed` session-scoped fixture is added to the root
`conftest.py` (moved from `kobo/conftest.py`). When the default storage
backend is `S3Boto3Storage`, it activates moto's `mock_aws` context for
the entire test session and pre-creates the configured bucket. When
`InMemoryStorage` is used, the fixture is a no-op. `moto[s3]` is added
to `dev_requirements`.

`testing.py` overrides bucket names to predictable values
(`test-bucket`, region `us-east-1`) when S3 is configured, so the
fixture can create them without a real AWS connection. The three Bedrock
settings previously hard-coded to `''` in `testing.py` are removed —
they are now always set from `base.py` with proper defaults.

`AttachmentApiTests` is wrapped in
`@override_settings(KOBOCAT_DEFAULT_FILE_STORAGE=FileSystemStorage)`
because `ffmpeg` (a subprocess) cannot follow moto-intercepted presigned
URLs. `setUpClass` resets `default_storage._backend` to force
reinitialisation with the overridden setting.

**Settings fix (`fix(settings)` commit)**

All AWS settings except the credentials themselves were gated behind `if
env.str('AWS_ACCESS_KEY_ID', False)`. This meant Bedrock, SES, and S3
settings were silently skipped when credentials came from
`~/.aws/credentials` or an instance profile. Now only
`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` are conditionally set; the
rest are always applied with their safe defaults.

9179 of 12421 branches covered (73.9%)

9 of 14 new or added lines in 2 files covered. (64.29%)

30277 of 37048 relevant lines covered (81.72%)

5.73 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
88.57
-11.43% kobo/settings/testing.py
1
77.97
1.69% kobo/settings/base.py
Jobs
ID Job ID Ran Files Coverage
1 26084578985.1 19 May 2026 08:10AM UTC 908
52.08
2 26084578985.2 19 May 2026 08:11AM UTC 908
53.72
3 26084578985.3 19 May 2026 08:12AM UTC 910
53.27
4 26084578985.4 19 May 2026 08:12AM UTC 908
52.33
5 26084578985.5 19 May 2026 08:13AM UTC 910
54.94
6 26084578985.6 19 May 2026 08:13AM UTC 908
59.57
7 26084578985.7 19 May 2026 08:13AM UTC 910
65.85
8 26084578985.8 19 May 2026 08:15AM UTC 910
60.67
9 26084578985.9 19 May 2026 08:16AM UTC 912
68.03
10 26084578985.10 19 May 2026 08:17AM UTC 910
53.63
Source Files on build 26084578985
  • Tree
  • List 912
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • cd1d03c6 on github
  • Prev Build on main (#26080797899)
  • Next Build on main (#26097878810)
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