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

spotify / lemur
60%
master: 60%

Build:
Build:
LAST BUILD BRANCH: spotify/cleanup-sect-and-acme
DEFAULT BRANCH: master
Repo Added 07 Jul 2026 08:44AM UTC
Token QDx0b89nY8QwH11gKNzTmni2INNVy6XFo regen
Build 25 Last
Files 13
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

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
Sync Branches
  • main
  • dependabot/pip/pyjwt-2.13.0
  • dependabot/pip/pytest-9.0.3
  • dependabot/pip/urllib3-2.7.0
  • spotify/add-rotate-cli-tests
  • spotify/add-tests
  • spotify/cleanup-sect-and-acme
  • spotify/fix-rotate-endpoint-skip
  • spotify/update-readme

07 Jul 2026 01:11PM UTC coverage: 59.879%. Remained the same
28868786699

push

github

web-flow
Add tests for rotate CLI and celery tasks (#78)

* Add tests for rotate CLI, request_rotation, and celery tasks

Cover critical production paths that had zero test coverage:

rotate CLI (8 tests):
- request_rotation: commit/no-commit, message/no-message, error
  handling, success/failure metrics
- Bulk rotation regression test: all 6 endpoints rotated, not 5
  (list-mutation bug)
- Single-endpoint rotation and dry-run mode

Celery tasks (12 tests):
- certificate_rotate: CLI dispatch, notification config, region
  routing, SoftTimeLimitExceeded, success metric
- certificate_reissue: CLI dispatch, timeout, success metric
- notify_expirations: CLI dispatch, config passthrough, timeout
- clean_all_sources: per-source task dispatch, success metric

* Fix celery tests: remove autouse fixtures to avoid session corruption

The autouse fixtures patching lemur.common.celery triggered module-level
create_app() during pytest collection, creating a second Flask app that
corrupted the session-scoped SQLAlchemy session for other tests.

* Add Python 3.12 to CI matrix

Production (lemur-deploy) runs Python 3.12 but CI only tested 3.10
and 3.11. Add 3.12 to the matrix so CI matches what we deploy.

* Fix celery tests: defer module import into app context

lemur.common.celery calls create_app() at module level when no Flask
current_app exists. Importing it outside an app context (e.g. during
pytest collection or early in a test) creates a second Flask app that
corrupts the session-scoped SQLAlchemy session, breaking 20 tests in
test_certificates.py.

Fix: use _import_celery_task() helper that defers the import to inside
the test body where the app context is active. Also require the session
fixture to ensure DB state is clean.

* Remove celery task tests — module-level create_app() is incompatible with test suite

lemur.common.celery unconditionally calls create_app() at import time
when no Flask current_app exists. This creates a second Flask app that
corrupts the ses... (continued)

594 of 992 relevant lines covered (59.88%)

0.6 hits per line

Relevant lines Covered
Build:
Build:
992 RELEVANT LINES 594 COVERED LINES
0.6 HITS PER LINE
Source Files on main
  • Tree
  • List 13
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28868786699 main Add tests for rotate CLI and celery tasks (#78) * Add tests for rotate CLI, request_rotation, and celery tasks Cover critical production paths that had zero test coverage: rotate CLI (8 tests): - request_rotation: commit/no-commit, message/no-m... push 07 Jul 2026 01:16PM UTC web-flow github
59.88
28856724146 main Build(deps): Bump pytest from 9.0.2 to 9.0.3 (#73) Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/... push 07 Jul 2026 09:46AM UTC web-flow github
59.88
28856221679 main Update README for Spotify fork (#72) Netflix/lemur was archived on 2026-07-06. This fork is now maintained by Spotify for internal TLS certificate management. Remove Netflix-specific badges, update project links, and document the fork's purpose ... push 07 Jul 2026 09:38AM UTC web-flow github
59.88
28856072373 main Build(deps): Bump pyjwt from 2.12.1 to 2.13.0 (#69) Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.12.1 to 2.13.0. - [Release notes](https://github.com/jpadilla/pyjwt/releases) - [Changelog](https://github.com/jpadilla/pyjwt/blob/master/... push 07 Jul 2026 09:36AM UTC web-flow github
59.88
28856051795 main Build(deps): Bump urllib3 from 2.6.3 to 2.7.0 (#70) Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main... push 07 Jul 2026 09:35AM UTC web-flow github
59.88
28856024278 main Fix rotate CLI skipping endpoints due to list mutation during iteration (#71) `old_cert.endpoints` is a live SQLAlchemy relationship. When `request_rotation` reassigns `endpoint.certificate = new_cert`, the endpoint is removed from the collection... push 07 Jul 2026 09:35AM UTC web-flow github
59.88
28853026157 main Merge pull request #5529 from PJ1288/main Lemur archival notice push 07 Jul 2026 08:44AM UTC web-flow github
59.88
See All Builds (20)

Badge your Repo: lemur

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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