Skip to content

Commit 1b582e5

Browse files
authored
Merge pull request #39 from intercreate/fix/#37/upgrade-from-mcuboot-generates-an-error
fix: exhaustive check for errors (closes #37)
2 parents 08e0254 + 57f77a5 commit 1b582e5

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

smpmgr/main.py

+18-12
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from smpclient.mcuboot import IMAGE_TLV, ImageInfo, TLVNotFound
1515
from smpclient.requests.image_management import ImageStatesWrite
1616
from smpclient.requests.os_management import ResetWrite
17-
from typing_extensions import Annotated
17+
from typing_extensions import Annotated, assert_never
1818

1919
from smpmgr import file_management, image_management, os_management, terminal
2020
from smpmgr.common import (
@@ -122,24 +122,30 @@ async def f() -> None:
122122
ImageStatesWrite(hash=image_tlv_sha256.value),
123123
"Marking uploaded image for test upgrade...",
124124
)
125-
if error(image_states_response):
125+
if success(image_states_response):
126+
pass
127+
elif error(image_states_response):
126128
print(image_states_response)
127129
raise typer.Exit(code=1)
128-
elif success(image_states_response):
129-
pass
130130
else:
131-
raise Exception("Unreachable")
131+
assert_never(image_states_response)
132132

133133
reset_response = await smp_request(smpclient, options, ResetWrite())
134-
if (error_v1(reset_response) and reset_response.rc != smperr.MGMT_ERR.EOK) or (
135-
error_v2(reset_response) and reset_response.err.rc != OS_MGMT_RET_RC.OK
136-
):
137-
print(reset_response)
138-
typer.Exit(code=1)
139-
elif success(reset_response):
134+
if success(reset_response):
140135
pass
136+
elif error(reset_response):
137+
if error_v1(reset_response):
138+
if reset_response.rc != smperr.MGMT_ERR.EOK:
139+
print(reset_response)
140+
raise typer.Exit(code=1)
141+
elif error_v2(reset_response):
142+
if reset_response.err.rc != OS_MGMT_RET_RC.OK:
143+
print(reset_response)
144+
raise typer.Exit(code=1)
145+
else:
146+
assert_never(reset_response)
141147
else:
142-
raise Exception("Unreachable")
148+
assert_never(reset_response)
143149

144150
print("Upgrade complete.")
145151

0 commit comments

Comments
 (0)