diff --git a/autotest/test_interface.py b/autotest/test_interface.py index 3562761..79a0fcc 100644 --- a/autotest/test_interface.py +++ b/autotest/test_interface.py @@ -7,6 +7,7 @@ from modflow_devtools.misc import set_dir from modflowapi import Callbacks, ModflowApi, run_simulation +from modflowapi.extensions.apiexchange import ApiExchange from modflowapi.extensions.pakbase import AdvancedPackage, ArrayPackage, ListPackage data_pth = Path("../docs/examples/data") @@ -293,6 +294,20 @@ def callback(sim, step): if len(sim.models) != 2: raise AssertionError("Invalid number of models") + assert sim.exchange_names == ["gwf-gwf_1"] + + exchange = sim.get_exchange() + assert isinstance(exchange, ApiExchange) + + named_exchange = sim.get_exchange("gwf-gwf_1") + assert named_exchange is exchange + + with pytest.raises(KeyError): + sim.get_exchange("not_a_real_exchange") + + assert "Exchanges include" in repr(sim) + assert "gwf-gwf_1" in repr(sim) + name = "two_models" sim_pth = data_pth / name test_pth = function_tmpdir / name diff --git a/modflowapi/extensions/apisimulation.py b/modflowapi/extensions/apisimulation.py index f9c98f5..00adda3 100644 --- a/modflowapi/extensions/apisimulation.py +++ b/modflowapi/extensions/apisimulation.py @@ -61,7 +61,7 @@ def __repr__(self): if self._exchanges: s += "\tExchanges include:\n" for name, exchange in self._exchanges.items(): - f"\t\t{name}: {type(exchange)}\n" + s += f"\t\t{name}: {type(exchange)}\n" return s @@ -256,8 +256,7 @@ def get_exchange(self, exchange_name=None): raise AssertionError("No exchanges are present in this simulation") if exchange_name is None: - for _, exg in self._exchanges: - return exg + return next(iter(self._exchanges.values())) else: if exchange_name in self._exchanges: @@ -375,7 +374,7 @@ def load(mf6): # sim_packages: tdis, gwf-gwf, sln exchanges = {} - for exchange_name in exchanges: + for exchange_name in exchange_names: exchange = ApiExchange(mf6, exchange_name) exchanges[exchange_name.lower()] = exchange