Skip to content

Commit 6d211e7

Browse files
committed
Move eventhandler none assert to function
1 parent ebbf89b commit 6d211e7

23 files changed

Lines changed: 79 additions & 210 deletions

src/isar/state_machine/state.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,27 +42,25 @@ def __init__(
4242
self.event_handler_mappings = event_handler_mappings
4343
self.timers = timers if timers is not None else []
4444

45-
def get_event_handler_by_name(
46-
self, event_handler_name: str
47-
) -> EventHandlerMapping | None:
45+
def get_event_handler_by_name(self, event_handler_name: str) -> EventHandlerMapping:
4846
filtered_handlers = list(
4947
filter(
5048
lambda mapping: mapping.name == event_handler_name,
5149
self.event_handler_mappings,
5250
)
5351
)
54-
return filtered_handlers[0] if len(filtered_handlers) > 0 else None
52+
assert len(filtered_handlers) > 0
53+
return filtered_handlers[0]
5554

56-
def get_event_timer_by_name(
57-
self, event_timer_name: str
58-
) -> TimeoutHandlerMapping | None:
55+
def get_event_timer_by_name(self, event_timer_name: str) -> TimeoutHandlerMapping:
5956
filtered_timers = list(
6057
filter(
6158
lambda mapping: mapping.name == event_timer_name,
6259
self.timers,
6360
)
6461
)
65-
return filtered_timers[0] if len(filtered_timers) > 0 else None
62+
assert len(filtered_timers) > 0
63+
return filtered_timers[0]
6664

6765
def handles_event(self, event: Event) -> bool:
6866
allowed_events: list[Event] = [m.event for m in self.event_handler_mappings]

tests/isar/state_machine/states/test_await_next_mission_state.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,10 @@ def test_state_machine_with_successful_mission_stop(
8282
def test_transition_from_resuming_to_paused(events: Events) -> None:
8383
current_state = Resuming(events, "mission_id")
8484

85-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
85+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
8686
"failed_resume_event"
8787
)
8888

89-
assert event_handler is not None
90-
9189
transition = event_handler.handler(
9290
ErrorMessage(
9391
error_reason=ErrorReason.RobotUnknownErrorException, error_description=""
@@ -103,10 +101,9 @@ def test_unknown_status_transitions_to_await_next_mission_if_it_was_already_avai
103101
) -> None:
104102
current_state = UnknownStatus(events)
105103

106-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
104+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
107105
"robot_status_event"
108106
)
109-
assert event_handler is not None
110107

111108
transition = event_handler.handler(RobotStatus.Available)
112109

@@ -119,12 +116,10 @@ def test_transition_from_resuming_return_home_to_await_next_mission(
119116
) -> None:
120117
current_state = ResumingReturnHome(events)
121118

122-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
119+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
123120
"failed_resume_event"
124121
)
125122

126-
assert event_handler is not None
127-
128123
transition = event_handler.handler(
129124
ErrorMessage(
130125
error_reason=ErrorReason.RobotUnknownErrorException, error_description=""

tests/isar/state_machine/states/test_going_to_lockdown_state.py

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def test_transition_from_return_home_paused_to_going_to_lockdown(
1616
) -> None:
1717
current_state: State = ReturnHomePaused(events)
1818

19-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
19+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
2020
"send_to_lockdown_event"
2121
)
2222

@@ -27,10 +27,9 @@ def test_transition_from_return_home_paused_to_going_to_lockdown(
2727
assert events.api_requests.send_to_lockdown.response.has_event()
2828
assert type(current_state) is GoingToLockdown
2929

30-
lockdown_event_handler: EventHandlerMapping | None = (
30+
lockdown_event_handler: EventHandlerMapping = (
3131
current_state.get_event_handler_by_name("mission_failed_to_resume")
3232
)
33-
assert lockdown_event_handler is not None
3433

3534
transition = lockdown_event_handler.handler(
3635
ErrorMessage(
@@ -46,12 +45,10 @@ def test_transition_from_return_home_paused_to_going_to_lockdown(
4645
def test_stopping_lockdown_transitions_to_going_to_lockdown(events: Events) -> None:
4746
current_state = StoppingGoToLockdown(events, "mission_id")
4847

49-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
48+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
5049
"successful_stop_event"
5150
)
5251

53-
assert event_handler is not None
54-
5552
transition = event_handler.handler(EmptyMessage())
5653

5754
current_state = transition(events)
@@ -69,12 +66,10 @@ def test_stopping_lockdown_transitions_to_going_to_lockdown(events: Events) -> N
6966
def test_return_home_transitions_to_going_to_lockdown(events: Events) -> None:
7067
current_state = ReturningHome(events)
7168

72-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
69+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
7370
"send_to_lockdown_event"
7471
)
7572

76-
assert event_handler is not None
77-
7873
transition = event_handler.handler(EmptyMessage())
7974

8075
current_state = transition(events)
@@ -84,12 +79,10 @@ def test_return_home_transitions_to_going_to_lockdown(events: Events) -> None:
8479
def test_recharging_transitions_to_going_to_lockdown(events: Events) -> None:
8580
current_state = GoingToRecharging(events)
8681

87-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
82+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
8883
"send_to_lockdown_event"
8984
)
9085

91-
assert event_handler is not None
92-
9386
transition = event_handler.handler(EmptyMessage())
9487

9588
current_state = transition(events)
@@ -99,12 +92,10 @@ def test_recharging_transitions_to_going_to_lockdown(events: Events) -> None:
9992
def test_await_next_mission_transitions_to_going_to_lockdown(events: Events) -> None:
10093
current_state = AwaitNextMission(events)
10194

102-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
95+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
10396
"send_to_lockdown_event"
10497
)
10598

106-
assert event_handler is not None
107-
10899
transition = event_handler.handler(EmptyMessage())
109100

110101
current_state = transition(events)

tests/isar/state_machine/states/test_going_to_recharging_state.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,10 @@ def test_stopping_to_recharge_goes_to_going_to_recharging_when_no_remaining_task
1212
events: Events,
1313
) -> None:
1414
current_state = StoppingGoToRecharge(events)
15-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
15+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
1616
"mission_already_done_event"
1717
)
1818

19-
assert event_handler is not None
20-
2119
transition = event_handler.handler(EmptyMessage())
2220

2321
current_state = transition(events)
@@ -28,12 +26,10 @@ def test_stopping_to_recharge_goes_to_going_to_recharging_with_aborted_mission(
2826
events: Events,
2927
) -> None:
3028
current_state = StoppingGoToRecharge(events)
31-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
29+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
3230
"successful_stop_event"
3331
)
3432

35-
assert event_handler is not None
36-
3733
transition = event_handler.handler(AbortedMission(id="id", name="test"))
3834

3935
assert events.mqtt_queue.empty()
@@ -44,12 +40,10 @@ def test_stopping_to_recharge_goes_to_going_to_recharging_with_aborted_mission(
4440

4541
def test_return_home_goes_to_recharging_when_battery_low(events: Events) -> None:
4642
current_state = ReturningHome(events)
47-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
43+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
4844
"robot_battery_below_threshold_event"
4945
)
5046

51-
assert event_handler is not None
52-
5347
transition = event_handler.handler(EmptyMessage())
5448

5549
current_state = transition(events)
@@ -60,12 +54,10 @@ def test_cancelling_mission_when_going_home_to_recharge(events: Events) -> None:
6054
current_state = GoingToRechargingWithMission(
6155
events, mission=AbortedMission(name="test", id="test_id")
6256
)
63-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
57+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
6458
"stop_mission_event"
6559
)
6660

67-
assert event_handler is not None
68-
6961
transition = event_handler.handler("test_id")
7062

7163
current_state = transition(events)

tests/isar/state_machine/states/test_home_state.py

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,10 @@
1212
def test_lockdown_transitions_to_home(events: Events) -> None:
1313
current_state = Lockdown(events)
1414

15-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
15+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
1616
"release_from_lockdown"
1717
)
1818

19-
assert event_handler is not None
20-
2119
transition = event_handler.handler(EmptyMessage())
2220

2321
assert events.api_requests.release_from_lockdown.response.check()
@@ -30,16 +28,13 @@ def test_state_machine_with_return_home_failure_successful_retries(
3028
) -> None:
3129
current_state = ReturningHome(events)
3230

33-
event_handler_success: EventHandlerMapping | None = (
31+
event_handler_success: EventHandlerMapping = (
3432
current_state.get_event_handler_by_name("mission_succeeded_event")
3533
)
36-
event_handler_failure: EventHandlerMapping | None = (
34+
event_handler_failure: EventHandlerMapping = (
3735
current_state.get_event_handler_by_name("mission_failed_event")
3836
)
3937

40-
assert event_handler_success is not None
41-
assert event_handler_failure is not None
42-
4338
transition = event_handler_failure.handler(
4439
ErrorMessage(
4540
error_reason=ErrorReason.RobotUnknownErrorException,
@@ -61,10 +56,9 @@ def test_intervention_needed_transitions_to_home_if_robot_is_home(
6156
) -> None:
6257
current_state = InterventionNeeded(events)
6358

64-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
59+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
6560
"robot_status_event"
6661
)
67-
assert event_handler is not None
6862

6963
transition = event_handler.handler(RobotStatus.Home)
7064

@@ -77,12 +71,10 @@ def test_intervention_needed_transitions_to_home_if_robot_is_home(
7771
def test_recharging_goes_to_home_when_battery_high(events: Events) -> None:
7872
current_state = Recharging(events)
7973

80-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
74+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
8175
"robot_battery_above_recharge_threshold_event"
8276
)
8377

84-
assert event_handler is not None
85-
8678
transition = event_handler.handler(EmptyMessage())
8779

8880
current_state = transition(events)

tests/isar/state_machine/states/test_intervention_needed_state.py

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,10 @@
1111

1212
def test_going_to_recharging_goes_to_intervention_needed(events: Events) -> None:
1313
current_state = GoingToRecharging(events)
14-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
14+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
1515
"mission_failed_event"
1616
)
1717

18-
assert event_handler is not None
19-
2018
transition = event_handler.handler(
2119
ErrorMessage(
2220
error_reason=ErrorReason.RobotUnknownErrorException,
@@ -33,12 +31,10 @@ def test_going_to_lockdown_task_failed_transitions_to_intervention_needed(
3331
) -> None:
3432
current_state = GoingToLockdown(events)
3533

36-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
34+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
3735
"mission_failed_event"
3836
)
3937

40-
assert event_handler is not None
41-
4238
transition = event_handler.handler(
4339
ErrorMessage(
4440
error_reason=ErrorReason.RobotUnknownErrorException,
@@ -55,12 +51,10 @@ def test_going_to_lockdown_mission_failed_transitions_to_intervention_needed(
5551
) -> None:
5652
current_state = GoingToLockdown(events)
5753

58-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
54+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
5955
"mission_failed_event"
6056
)
6157

62-
assert event_handler is not None
63-
6458
# The type of error reason is not important for this test
6559
transition = event_handler.handler(
6660
ErrorMessage(error_description="", error_reason=ErrorReason.RobotAPIException)
@@ -73,7 +67,7 @@ def test_going_to_lockdown_mission_failed_transitions_to_intervention_needed(
7367
def test_state_machine_with_return_home_failure(events: Events) -> None:
7468
current_state = ReturningHome(events)
7569

76-
failure_event_handler: EventHandlerMapping | None
70+
failure_event_handler: EventHandlerMapping
7771

7872
for i in range(settings.RETURN_HOME_RETRY_LIMIT - 1):
7973

@@ -112,10 +106,9 @@ def test_intervention_needed_transitions_does_not_transition_if_status_is_not_ho
112106
) -> None:
113107
current_state = InterventionNeeded(events)
114108

115-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
109+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
116110
"robot_status_event"
117111
)
118-
assert event_handler is not None
119112

120113
statuses = [
121114
RobotStatus.Available,

tests/isar/state_machine/states/test_lockdown_state.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@
99
def test_mission_stopped_when_going_to_lockdown(events: Events) -> None:
1010
current_state = Monitor(events, "mission_id")
1111

12-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
12+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
1313
"send_to_lockdown_event"
1414
)
1515

16-
assert event_handler is not None
17-
1816
transition = event_handler.handler(EmptyMessage())
1917

2018
current_state = transition(events)
@@ -24,12 +22,10 @@ def test_mission_stopped_when_going_to_lockdown(events: Events) -> None:
2422
def test_going_to_lockdown_transitions_to_lockdown(events: Events) -> None:
2523
current_state = GoingToLockdown(events)
2624

27-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
25+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
2826
"mission_succeeded_event"
2927
)
3028

31-
assert event_handler is not None
32-
3329
transition = event_handler.handler(EmptyMessage())
3430

3531
current_state = transition(events)

tests/isar/state_machine/states/test_maintenance_mode_state.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@ def test_home_transitions_to_maintenance_mode_when_teleoperating(
1212
) -> None:
1313
current_state = Home(events)
1414

15-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
15+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
1616
"robot_status_event"
1717
)
18-
assert event_handler is not None
1918

2019
transition = event_handler.handler(RobotStatus.TeleOperation)
2120

@@ -30,10 +29,9 @@ def test_unknown_status_transitions_to_maintenance_mode_when_teleoperating(
3029
) -> None:
3130
current_state = UnknownStatus(events)
3231

33-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
32+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
3433
"robot_status_event"
3534
)
36-
assert event_handler is not None
3735

3836
transition = event_handler.handler(RobotStatus.TeleOperation)
3937

@@ -48,10 +46,9 @@ def test_offline_transitions_to_maintenance_mode_when_teleoperating(
4846
) -> None:
4947
current_state = Offline(events)
5048

51-
event_handler: EventHandlerMapping | None = current_state.get_event_handler_by_name(
49+
event_handler: EventHandlerMapping = current_state.get_event_handler_by_name(
5250
"robot_status_event"
5351
)
54-
assert event_handler is not None
5552

5653
transition = event_handler.handler(RobotStatus.TeleOperation)
5754

0 commit comments

Comments
 (0)