From e75aaf326dc3230acc66959a97bdf26b84004943 Mon Sep 17 00:00:00 2001 From: Paul Natsuo Kishimoto Date: Thu, 30 Jan 2025 11:57:12 +0100 Subject: [PATCH] TEMPORARY Debug test_plot_simulated on macOS --- .github/workflows/pytest.yaml | 2 +- message_ix_models/model/transport/config.py | 3 +++ message_ix_models/model/transport/testing.py | 6 ++++++ message_ix_models/report/__init__.py | 2 ++ message_ix_models/testing/__init__.py | 3 +++ message_ix_models/tests/model/transport/test_report.py | 1 + 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml index 4af17160d2..467e8bb599 100644 --- a/.github/workflows/pytest.yaml +++ b/.github/workflows/pytest.yaml @@ -167,7 +167,7 @@ jobs: run: | pytest message_ix_models \ -m "not (ece_db or snapshot)" \ - --color=yes --durations=20 -rA --verbose \ + --color=yes --durations=20 -rA --verbose --exitfirst \ --cov-report=term-missing --cov-report=xml \ --numprocesses=auto \ --local-cache --jvmargs="-Xmx6G" diff --git a/message_ix_models/model/transport/config.py b/message_ix_models/model/transport/config.py index 6970585bfc..92ee2ce220 100644 --- a/message_ix_models/model/transport/config.py +++ b/message_ix_models/model/transport/config.py @@ -341,12 +341,15 @@ def from_context( # Handle arguments options = options or dict() + log.debug(f".transport.Config.from_context: {context.model.regions = }") try: # Identify the node codelist used in `scenario` regions = identify_nodes(scenario) if scenario else context.model.regions except (AttributeError, ValueError): pass else: + if scenario: + log.debug(f".transport.Config.from_context: {scenario.set('node') = }") if context.model.regions != regions: log.info( f"Override Context.model.regions={context.model.regions!r} with " diff --git a/message_ix_models/model/transport/testing.py b/message_ix_models/model/transport/testing.py index 230985c426..7b24439b89 100644 --- a/message_ix_models/model/transport/testing.py +++ b/message_ix_models/model/transport/testing.py @@ -113,7 +113,9 @@ def built_transport( options = options or dict() # Retrieve (maybe generate) the bare RES with the same settings + log.info(f"built_transport: {context.regions = }") res = bare_res(request, context, solved) + log.info(f"built_transport: {res.set('node') = }") # Derive the name for the transport scenario model_name = res.model.replace("-GLOBIOM", "-Transport") @@ -154,7 +156,9 @@ def simulated_solution(request, context) -> Reporter: from .report import callback # Build the base model + log.debug(f"simulated_solution: {context.regions = }") scenario = built_transport(request, context, solved=False) + log.debug(f"simulated_solution: {scenario.set('node') = }") # Info about the built model info = ScenarioInfo(scenario) @@ -194,4 +198,6 @@ def simulated_solution(request, context) -> Reporter: with silence_log("genno", logging.CRITICAL): message_ix_models.report.prepare_reporter(context, reporter=rep) + log.debug(f"simulated_solution: {context.regions = }") + return rep diff --git a/message_ix_models/report/__init__.py b/message_ix_models/report/__init__.py index de2d0d78f8..66d1e0786c 100644 --- a/message_ix_models/report/__init__.py +++ b/message_ix_models/report/__init__.py @@ -281,6 +281,8 @@ def prepare_reporter( """ log.info("Prepare reporter") + log.debug(f".report.prepare_reporter: {context.regions = }") + if reporter: # Existing `Reporter` provided rep = reporter diff --git a/message_ix_models/testing/__init__.py b/message_ix_models/testing/__init__.py index 8b08f3f421..0df9665316 100644 --- a/message_ix_models/testing/__init__.py +++ b/message_ix_models/testing/__init__.py @@ -202,6 +202,7 @@ def bare_res(request, context: Context, solved: bool = False) -> message_ix.Scen from message_ix_models.model import bare # Model name: standard "MESSAGEix-GLOBIOM R12 YB" plus a suffix + log.info(f"bare_res: {context.model.regions = }") model_name = bare.name(context, unique=True) mp = context.get_platform() @@ -213,6 +214,8 @@ def bare_res(request, context: Context, solved: bool = False) -> message_ix.Scen context.scenario_info.update(model=model_name, scenario="baseline") base = bare.create_res(context) + log.info(f"bare_res: {base.set('node') = }") + if solved and not base.has_solution(): log.info("Solve") base.solve(solve_options=dict(lpmethod=4), quiet=True) diff --git a/message_ix_models/tests/model/transport/test_report.py b/message_ix_models/tests/model/transport/test_report.py index 34ec6b8a45..f2be57ab8a 100644 --- a/message_ix_models/tests/model/transport/test_report.py +++ b/message_ix_models/tests/model/transport/test_report.py @@ -141,6 +141,7 @@ def test_simulated_solution(request, test_context, regions="R12", years="B"): def test_plot_simulated(request, test_context, plot_name, regions="R12", years="B"): """Plots are generated correctly using simulated data.""" test_context.update(regions=regions, years=years) + log.debug(f"test_plot_simulated: {test_context.regions = }") rep = simulated_solution(request, test_context) # print(rep.describe(f"plot {plot_name}")) # DEBUG