Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions autotest/test_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down Expand Up @@ -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
Expand Down
7 changes: 3 additions & 4 deletions modflowapi/extensions/apisimulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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

Expand Down
Loading