Skip to content

Commit 197a540

Browse files
committed
state machine to nested state fixed: now it is more robust to cases where the machine state is a branch in parallel states
Signed-off-by: Pedro Escaleira <pedroescaleira@hotmail.com>
1 parent a53be24 commit 197a540

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

serverlessworkflow/sdk/state_machine_generator.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,9 @@ def parallel_state_details(self):
189189
self.state_machine.get_state(state_name).add_substates(
190190
NestedState(branch_name)
191191
)
192-
self.state_machine.get_state(state_name).initial.append(branch_name)
192+
self.state_machine.get_state(state_name).initial.append(
193+
branch_name
194+
)
193195
branch_state = self.state_machine.get_state(
194196
state_name
195197
).states[branch.name]
@@ -344,7 +346,10 @@ def generate_actions_info(
344346
else f"{sf.id}/{sf.version.replace(NestedState.separator, '-')}"
345347
)
346348
self.state_machine_to_nested_state(
347-
state_machine=new_machine, nested_state=nested_state
349+
machine_state=machine_state,
350+
state_name=state_name,
351+
state_machine=new_machine,
352+
nested_state=nested_state,
348353
)
349354
if none_found:
350355
warnings.warn(
@@ -364,10 +369,13 @@ def add_all_sub_states(
364369
cls.add_all_sub_states(substate, ns)
365370

366371
def state_machine_to_nested_state(
367-
self, state_machine: HierarchicalMachine, nested_state: NestedState
372+
self,
373+
machine_state: NestedState,
374+
state_name: str,
375+
state_machine: HierarchicalMachine,
376+
nested_state: NestedState,
368377
) -> NestedState:
369-
self.state_machine.get_state(self.state.name).add_substate(nested_state)
370-
378+
machine_state.add_substate(nested_state)
371379
self.add_all_sub_states(state_machine, nested_state)
372380

373381
for trigger, event in state_machine.events.items():
@@ -377,8 +385,8 @@ def state_machine_to_nested_state(
377385
dest = transition.dest
378386
self.state_machine.add_transition(
379387
trigger=trigger,
380-
source=f"{self.state.name}.{nested_state.name}.{source}",
381-
dest=f"{self.state.name}.{nested_state.name}.{dest}",
388+
source=f"{state_name}.{nested_state.name}.{source}",
389+
dest=f"{state_name}.{nested_state.name}.{dest}",
382390
)
383391

384392
def get_function_name(

0 commit comments

Comments
 (0)