Skip to content

Commit 26a8103

Browse files
committed
Fixes for copilot review of monitoring code
1 parent 9792102 commit 26a8103

3 files changed

Lines changed: 50 additions & 49 deletions

File tree

src/everest/bin/utils.py

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -261,30 +261,31 @@ def _get_opt_progress_single_batch(self, cli_monitor_data: dict[str, Any]) -> st
261261

262262
lines = [self._make_header(f"Optimization progress (Batch #{batch})")]
263263

264-
if controls := cli_monitor_data.get("controls"):
265-
width = _get_max_width(controls.keys())
266-
lines.append(
267-
self._join_one_newline_indent(
268-
[
269-
f"{name:>{width}}: {value:{self.FLOAT_FMT}}"
270-
for name, value in controls.items()
271-
]
264+
if cli_monitor_data.get("result_type") == "FunctionResult":
265+
if controls := cli_monitor_data.get("controls"):
266+
width = _get_max_width(controls.keys())
267+
lines.append(
268+
self._join_one_newline_indent(
269+
[
270+
f"{name:>{width}}: {value:{self.FLOAT_FMT}}"
271+
for name, value in controls.items()
272+
]
273+
)
272274
)
273-
)
274-
if expected_objectives := cli_monitor_data.get("expected_objectives"):
275-
width = _get_max_width(expected_objectives.keys())
276-
lines.append(
277-
self._join_one_newline_indent(
278-
[
279-
f"{name:>{width}}: {value:{self.FLOAT_FMT}}"
280-
for name, value in expected_objectives.items()
281-
]
275+
if expected_objectives := cli_monitor_data.get("expected_objectives"):
276+
width = _get_max_width(expected_objectives.keys())
277+
lines.append(
278+
self._join_one_newline_indent(
279+
[
280+
f"{name:>{width}}: {value:{self.FLOAT_FMT}}"
281+
for name, value in expected_objectives.items()
282+
]
283+
)
284+
)
285+
if objective_value := cli_monitor_data.get("objective_value"):
286+
lines.append(
287+
f"Total normalized objective: {objective_value:{self.FLOAT_FMT}}"
282288
)
283-
)
284-
if objective_value := cli_monitor_data.get("objective_value"):
285-
lines.append(
286-
f"Total normalized objective: {objective_value:{self.FLOAT_FMT}}"
287-
)
288289

289290
if failures := cli_monitor_data.get("failures", {}):
290291
failed_lines = []

src/everest/detached/client.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -211,24 +211,20 @@ def server_is_running(url: str, cert: str, auth: tuple[str, str]) -> bool:
211211
def get_opt_status_from_batch_result_event(
212212
event: EverestBatchResultEvent,
213213
) -> dict[str, Any]:
214-
if not event.results:
215-
return {}
216-
217-
assert event.batch is not None
218-
219-
if event.result_type == "FunctionResult":
220-
return {
221-
"batch": event.batch,
222-
"controls": event.results["controls"],
223-
"objective_value": event.results["total_objective_value"],
224-
"expected_objectives": event.results["objectives"],
225-
"failures": event.failures,
226-
}
227-
228-
return {
214+
status = {
215+
"result_type": event.result_type,
229216
"batch": event.batch,
230217
"failures": event.failures,
231218
}
219+
if event.results and event.result_type == "FunctionResult":
220+
status.update(
221+
{
222+
"controls": event.results["controls"],
223+
"objective_value": event.results["total_objective_value"],
224+
"expected_objectives": event.results["objectives"],
225+
}
226+
)
227+
return status
232228

233229

234230
def start_monitor(

tests/everest/test_monitor.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ def snapshot_update_event_with_fm_message():
177177

178178

179179
@pytest.mark.slow
180-
def test_failed_jobs_monitor(
180+
def test_that_the_monitor_shows_failed_jobs(
181181
monkeypatch, full_snapshot_event, snapshot_update_failure_event, capsys
182182
):
183183
server_mock = MagicMock()
@@ -215,7 +215,9 @@ def test_failed_jobs_monitor(
215215

216216

217217
@pytest.mark.slow
218-
def test_monitor(monkeypatch, full_snapshot_event, snapshot_update_event, capsys):
218+
def test_that_the_monitor_shows_running_jobs(
219+
monkeypatch, full_snapshot_event, snapshot_update_event, capsys
220+
):
219221
server_mock = MagicMock()
220222
connection_mock = MagicMock(spec=ClientConnection)
221223
connection_mock.recv.side_effect = [
@@ -251,7 +253,7 @@ def test_monitor(monkeypatch, full_snapshot_event, snapshot_update_event, capsys
251253

252254

253255
@pytest.mark.slow
254-
def test_forward_model_message_reaches_the_cli(
256+
def test_that_a_forward_model_message_reaches_the_cli(
255257
monkeypatch, full_snapshot_event, snapshot_update_event_with_fm_message, capsys
256258
):
257259
server_mock = MagicMock()
@@ -264,10 +266,11 @@ def test_forward_model_message_reaches_the_cli(
264266
server_mock.return_value.__enter__.return_value = connection_mock
265267
monkeypatch.setattr(everest.detached.client, "connect", server_mock)
266268
monkeypatch.setattr(everest.detached.client, "ssl", MagicMock())
267-
partial(everest.detached.start_monitor, polling_interval=0.1)
268-
run_detached_monitor(
269-
("some/url", "cert", ("username", "password")), run_id="test-run-id"
270-
)
269+
patched = partial(everest.detached.start_monitor, polling_interval=0.1)
270+
with patch("everest.bin.utils.start_monitor", patched):
271+
run_detached_monitor(
272+
("some/url", "cert", ("username", "password")), run_id="test-run-id"
273+
)
271274
captured = capsys.readouterr()
272275

273276
expected = [
@@ -290,7 +293,7 @@ def test_forward_model_message_reaches_the_cli(
290293

291294

292295
@pytest.mark.slow
293-
def test_failed_everest_batch_result_event(
296+
def test_that_a_failed_everest_batch_result_event_is_shown(
294297
monkeypatch, everest_batch_result_event, capsys
295298
):
296299
server_mock = MagicMock()
@@ -302,10 +305,11 @@ def test_failed_everest_batch_result_event(
302305
server_mock.return_value.__enter__.return_value = connection_mock
303306
monkeypatch.setattr(everest.detached.client, "connect", server_mock)
304307
monkeypatch.setattr(everest.detached.client, "ssl", MagicMock())
305-
partial(everest.detached.start_monitor, polling_interval=0.1)
306-
run_detached_monitor(
307-
("some/url", "cert", ("username", "password")), run_id="test-run-id"
308-
)
308+
patched = partial(everest.detached.start_monitor, polling_interval=0.1)
309+
with patch("everest.bin.utils.start_monitor", patched):
310+
run_detached_monitor(
311+
("some/url", "cert", ("username", "password")), run_id="test-run-id"
312+
)
309313
captured = capsys.readouterr()
310314
expected = [
311315
"============= Optimization progress (Batch #0) =============\n",

0 commit comments

Comments
 (0)