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

Kinto / kinto / 22113539843
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 17 Feb 2026 08:03PM UTC
Jobs 3
Files 78
Run time 1min
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

17 Feb 2026 07:57PM UTC coverage: 100.0%. Remained the same
22113539843

push

github

web-flow
Fix purge_deleted() to only delete tombstones on PostgreSQL backend (#3644)

The purge_deleted() method's base class contract and docstring specify
that it deletes "tombstones" (soft-deleted objects). The memory backend
correctly operates only on tombstone storage (self._cemetery). However,
the PostgreSQL backend's DELETE queries lacked a deleted = TRUE filter,
meaning purge_deleted with a before timestamp or max_retained would
delete both live records and tombstones.

This can result in silent data loss when running the purge_deleted
maintenance script.

What changed:
- Added AND deleted = TRUE to the before-path DELETE query
- Added WHERE deleted = TRUE to the max_retained-path CTE so the
  ranking window only considers tombstones
- Added three test cases that create live records + tombstones, call
  purge_deleted, and verify only tombstones are removed

Test coverage:
- test_purge_deleted_with_before_only_deletes_tombstones: Tests the
  before parameter path with mixed live/deleted objects
- test_purge_deleted_with_max_retained_only_affects_tombstones: Tests
  the max_retained parameter with 3 live + 5 tombstones
- test_purge_deleted_without_before_only_deletes_tombstones: Tests
  purging all tombstones while preserving live records

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

1522 of 1522 branches covered (100.0%)

51 of 51 new or added lines in 1 file covered. (100.0%)

7792 of 7792 relevant lines covered (100.0%)

3.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 py311 - 22113539843.1 17 Feb 2026 08:04PM UTC 78
100.0
GitHub Action Run
2 py310 - 22113539843.2 17 Feb 2026 08:04PM UTC 78
100.0
GitHub Action Run
3 py312 - 22113539843.3 17 Feb 2026 08:04PM UTC 78
100.0
GitHub Action Run
Source Files on build 22113539843
  • Tree
  • List 78
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 7cb3e6ce on github
  • Prev Build on main (#22096512134)
  • Next Build on main (#22132280979)
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