Skip to content

Commit 7167ead

Browse files
authored
Merge pull request #140 from ImperialCollegeLondon/overrides-bug
Overrides bug
2 parents d05486d + 0c30156 commit 7167ead

File tree

4 files changed

+17
-6
lines changed

4 files changed

+17
-6
lines changed

tests/test_land.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -1431,6 +1431,14 @@ def test_apply_surface_overrides(tmp_path):
14311431
import yaml
14321432
from wsimod.orchestration.model import Model
14331433

1434+
with (tmp_path / "fake_surface_inputs.csv").open("w") as f:
1435+
f.write("node,surface,variable,time,value\n")
1436+
f.write("land1,Woodland,srp-dry,2000-01-01,1\n")
1437+
1438+
with (tmp_path / "fake_inputs.csv").open("w") as f:
1439+
f.write("node,variable,time,value\n")
1440+
f.write("land1,et0,2000-01-01,1\n")
1441+
14341442
config = {
14351443
"arcs": {
14361444
"arc1": {
@@ -1447,20 +1455,23 @@ def test_apply_surface_overrides(tmp_path):
14471455
"name": "land1",
14481456
"type_": "Land",
14491457
"percolation_residence_time": 0.1,
1458+
"filename": str(tmp_path / "fake_inputs.csv"),
14501459
"surfaces": {
14511460
"Woodland": {
14521461
"area": 100,
14531462
"datum": 10,
14541463
"type_": "GrowingSurface",
14551464
"ET_depletion_factor": 0.75,
14561465
"surface": "Woodland",
1466+
"filename": str(tmp_path / "fake_surface_inputs.csv"),
14571467
},
14581468
"Grass": {
14591469
"area": 200,
14601470
"datum": 20,
14611471
"type_": "GrowingSurface",
14621472
"ET_depletion_factor": 0.75,
14631473
"surface": "Grass",
1474+
"filename": str(tmp_path / "fake_surface_inputs.csv"),
14641475
},
14651476
},
14661477
},
@@ -1482,7 +1493,6 @@ def test_apply_surface_overrides(tmp_path):
14821493
"surfaces": {
14831494
"Woodland": {
14841495
"surface": "Woodland",
1485-
"type_": "GrowingSurface",
14861496
"area": 1000,
14871497
"ET_depletion_factor": 0.8,
14881498
}

tests/test_nodes.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ def test_data_overrides(self):
430430
)
431431
input_data = pd.read_csv(data_path)
432432

433-
overrides = {"data_input_dict": data_path}
433+
overrides = {"filename": data_path}
434434
node = Node(name="")
435435
node.apply_overrides(overrides)
436436
node.t = list(node.data_input_dict.keys())[0][1]
@@ -440,7 +440,7 @@ def test_data_overrides(self):
440440
node.get_data_input("temperature"),
441441
)
442442
# test runtime error
443-
self.assertRaises(RuntimeError, lambda: node.apply_overrides({}))
443+
self.assertRaises(RuntimeError, lambda: node.apply_overrides({"filename": 123}))
444444

445445

446446
if __name__ == "__main__":

wsimod/nodes/land.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,12 @@ def apply_overrides(self, overrides=Dict[str, Any]):
183183
self.surface_runoff.residence_time = self.surface_residence_time
184184
self.subsurface_runoff.residence_time = self.subsurface_residence_time
185185
self.percolation.residence_time = self.percolation_residence_time
186-
super().apply_overrides(overrides)
187186

188-
for surface, override in overrides.get("surfaces", {}).items():
187+
for surface, override in overrides.pop("surfaces", {}).items():
189188
self.get_surface(surface).apply_overrides(override)
190189

190+
super().apply_overrides(overrides)
191+
191192
def apply_irrigation(self):
192193
"""Iterate over any irrigation functions (needs further testing..
193194

wsimod/nodes/nodes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def apply_overrides(self, overrides: Dict[str, Any] = {}) -> None:
9090
# overrides data_input_dict
9191
from wsimod.orchestration.model import read_csv
9292

93-
content = overrides.pop("data_input_dict", self.data_input_dict)
93+
content = overrides.pop("filename", None)
9494
if isinstance(content, str):
9595
self.data_input_dict = read_csv(content)
9696
elif not content:

0 commit comments

Comments
 (0)