Skip to content

[15.0][MIG] currency_rate_update_wise - #222

Open
klodr wants to merge 2 commits into
OCA:15.0from
klodr:15.0-mig-currency_rate_update_wise
Open

[15.0][MIG] currency_rate_update_wise#222
klodr wants to merge 2 commits into
OCA:15.0from
klodr:15.0-mig-currency_rate_update_wise

Conversation

@klodr

@klodr klodr commented Jun 20, 2026

Copy link
Copy Markdown

currency_rate_update_wise → 15.0

Forward-port of the Wise.com exchange-rate provider from 14.0 to 15.0.
Framework migration only, no functional change.

Notes for reviewers

  • Hermetic tests: the Wise HTTP layer (_wise_provider_retrieve) is mocked —
    no network access needed in CI.
  • Carries a small, non-blocking helper that logs a warning when the configured
    API token still uses the legacy UUID format (Wise UUID → JWT migration).

@OCA-git-bot OCA-git-bot added mod:currency_rate_update_wise Module currency_rate_update_wise series:15.0 labels Jun 20, 2026
@klodr
klodr force-pushed the 15.0-mig-currency_rate_update_wise branch 2 times, most recently from 18f9dcb to f0d3d9c Compare June 20, 2026 06:51
Forward-port of the renamed and hardened Wise exchange-rate provider introduced
on 14.0 (rename from currency_rate_update_transferwise + security fixes; see the
14.0 history for the rationale and the OpenUpgrade rename). Framework migration
only, no functional change.

Signed-off-by: Claude Perrin <klodr@users.noreply.github.com>
@klodr
klodr force-pushed the 15.0-mig-currency_rate_update_wise branch from f0d3d9c to d9ea56f Compare June 20, 2026 08:12
@klodr

klodr commented Jun 20, 2026

Copy link
Copy Markdown
Author

A note on the red CI, for reviewers:

  • pre-commit fails because the setuptools-odoo 3.1.8 hooks import the removed pkg_resources; this is fixed by the prerequisite bump [15.0] pre-commit: bump setuptools-odoo to 3.3.2 #226.
  • test with OCB / test with Odoo fail solely on the pre-existing currency_rate_update_xe module — its test_cron / test_wizard make real network calls to xe.com (which no longer returns usable data), asserting 0 != 1. This is unrelated to this PR.

currency_rate_update_wise itself installs cleanly and all 10 of its tests pass — the Wise HTTP layer is mocked, so no network access is needed in CI. The xe.com test issue is addressed on the other branches in #216 (16.0) / #218 (17.0) / #220 (14.0).

Wise answers HTTP 400 when the "from" and "to" query parameters are equal:

  GET /v1/rates?source=USD&target=EUR&from=2026-08-04&to=2026-08-04&group=day
  -> 400 Bad Request

That is exactly the shape of a scheduled run once the rates are up to
date: the provider then asks for the single missing day. The failure is
therefore intermittent — it only shows up when no more than one day is
missing, which is the steady state of a daily cron.

Widen the window by one day when it would collapse. The endpoint only
returns the days it actually has, so no spurious rate is created; asking
for a "to" one day ahead of today answers 200 with today's rate only.

The existing tests mock the HTTP layer and never inspect the outgoing
query, which is why this went unnoticed. Add a test that captures the
parameters and asserts the window is never zero-length.

Signed-off-by: Claude Perrin <klodr@users.noreply.github.com>
(cherry picked from commit bac73b5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mod:currency_rate_update_wise Module currency_rate_update_wise series:15.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants