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

rero / rero-ils / 25723818701
91%

Build:
DEFAULT BRANCH: staging
Ran 12 May 2026 01:03PM UTC
Jobs 1
Files 610
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

12 May 2026 08:48AM UTC coverage: 91.312% (+0.2%) from 91.119%
25723818701

push

github

PascalRepond
chore: update Python to 3.14 and invenio deps

Update Python version to >=3.14.0.
Update invenio dependencies to their latest major versions.
Add max_retries and retry_on_timeout to elasticsearch client config for
better resilience in CI tests.

Adapt code for breaking changes with new Python and invenio versions:
- timezone: replace pytz with stdlib datetime.UTC and
  zoneinfo.ZoneInfo; replace deprecated datetime.utcnow() with
  datetime.now(UTC); remove pytz.utc.localize() calls since invenio
  records now return timezone-aware datetimes
- Replace `tz.localize()` calls with `dt.astimezone(tz)` followed by
  replace on time components, ensuring DST offsets are applied correctly.
- Convert datetimes to UTC before subtraction in loan duration
  calculations: unlike pytz (which creates distinct tzinfo objects per
  DST state), `ZoneInfo` reuses a single object, causing Python to
  perform naive subtraction across DST boundaries and yielding incorrect
  durations. Apply the same astimezone-then-replace pattern to overdue
  fee calculation and loan age computation.
- permissions: add RoleNeed(role.name) to identity since
  flask-security-invenio 4.x now uses RoleNeed(role.id)
- webargs: create a local FlaskParser with location="json_or_form" in
  accounts_views.py instead of importing use_args/use_kwargs from
  invenio_accounts (which is locked to location="form"). Cause:
  webargs 5→8 made FlaskParser(location="form") strict; our JSON
  requests were rejected before reaching view logic. Use
  invenio-accounts' FlaskParser so that validation errors return a
  400 status with RESTValidationError instead of webargs' default 422.
- marshmallow: remove context={"request": request} parameter from
  Schema instantiation (no longer supported)
- classmethod+property: replace stacked @classmethod/@property
  decorators (removed in Python 3.13) with descriptors
  (files/services.py) and inline computation (users/api.py)
- typing: replace typing.Optional with PEP 6... (continued)

118 of 121 new or added lines in 40 files covered. (97.52%)

102 existing lines in 6 files now uncovered.

24079 of 26370 relevant lines covered (91.31%)

0.91 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
76.19
0.0% rero_ils/modules/loans/tasks.py
1
83.97
0.0% rero_ils/modules/selfcheck/api.py
1
51.04
0.53% rero_ils/modules/stats/views.py

Coverage Regressions

Lines Coverage ∆ File
55
90.24
5.13% rero_ils/modules/sru/cql_parser.py
24
75.8
0.0% rero_ils/modules/entities/remote_entities/sync.py
10
90.91
0.52% rero_ils/modules/documents/serializers/marc.py
6
96.55
0.04% rero_ils/modules/deduplications/api.py
6
90.6
0.0% rero_ils/modules/entities/remote_entities/api.py
1
99.32
-0.68% rero_ils/modules/sru/views.py
Jobs
ID Job ID Ran Files Coverage
1 25723818701.1 12 May 2026 01:03PM UTC 610
91.31
GitHub Action Run
Source Files on build 25723818701
  • Tree
  • List 610
  • Changed 175
  • Source Changed 174
  • Coverage Changed 27
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25723818701
  • 994996ed on github
  • Prev Build on staging (#25044494528)
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