Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test against ixmp4 #257

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Test against ixmp4 #257

wants to merge 1 commit into from

Conversation

khaeru
Copy link
Member

@khaeru khaeru commented Nov 28, 2024

This is a minimal PR to check that the message-ix-model test suite runs using ixmp4 storage (i.e. without the ixmp.JDBCBackend and underlying Java code). To do this, it:

  • Installs from the branch for Implement ixmp4 shim ixmp#552 that:
    • Provides a minimal 'shim' layer between the behaviour of ixmp.Platform, ixmp.TimeSeries, ixmp.Scenario and the underlying ixmp4 API.
    • Ensures that all of the behaviour of those 3 classes continues to pass the ixmp test suite when using ixmp4 storage. (message-ix-models and downstream/user code rely on that behaviour.)
    • Will (but does not yet, as of 2024-11-28) parametrize the ixmp.testing.test_mp fixture to yield either the current ixmp.JDBCBackend-backed test Platform, or an ixmp4-backed test Platform.
  • Installs from the branch for Test against ixmp4 message_ix#894. (Technically this should not be necessary: if the shim works, then the message_ix.tests will pass with the code on message_ix main branch. However, using that branch makes for smaller adjustments to the GitHub Actions workflows here.)
  • Confirms that the collective behaviour of the upstream packages continues to pass the message_ix_models.tests suite, with either storage option. (MESSAGEix-GLOBIOM workflows and downstream/user code rely on this behaviour.)

Implementation/to dos:

  • As a consequence of parametrizing ixmp.testing.test_mp, all tests in message_ix_models.tests that use the test_mp fixture will run twice: once with JDBCBackend, and once with ixmp4.
  • Some other tests may not be parametrized automatically by the upstream changes:
    • Identify these.
    • Parametrize them manually.
  • Rebase this branch frequently.
  • Debug installation of ixmp4 alongside other dependencies.

Some things not in scope for this PR:

  • Changes to the behaviour/API of message_ix_models.
  • Migrating code from ixmp or message_ix.

How to review

TBA

PR checklist

  • Continuous integration checks all ✅
  • Add or expand tests; coverage checks both ✅
  • Add, expand, or update documentation.
  • Update doc/whatsnew.

@khaeru khaeru added the enh New features or functionality label Nov 28, 2024
Copy link

codecov bot commented Nov 28, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 75.7%. Comparing base (aa49621) to head (f726865).
Report is 16 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##            main    #257     +/-   ##
=======================================
- Coverage   76.7%   75.7%   -1.0%     
=======================================
  Files        203     203             
  Lines      15704   15704             
=======================================
- Hits       12050   11901    -149     
- Misses      3654    3803    +149     

see 8 files with indirect coverage changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enh New features or functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant