Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def setUp(self):
State.separator = state_separator
states = ['A', 'B', {'name': 'C', 'children': ['1', '2', {'name': '3', 'children': ['a', 'b', 'c']}]},
'D', 'E', 'F']
machine_cls = MachineFactory.get_predefined(graph=True, nested=True)
self.stuff = Stuff(states, machine_cls)
def test_ordered_with_graph(self):
GraphMachine = MachineFactory.get_predefined(graph=True, nested=True)
states = ['A', 'B', {'name': 'C', 'children': ['1', '2',
{'name': '3', 'children': ['a', 'b', 'c']}]}, 'D', 'E', 'F']
State.separator = '/'
machine = GraphMachine('self', states, initial='A',
auto_transitions=False,
ignore_invalid_triggers=True)
machine.add_ordered_transitions(trigger='next_state')
machine.next_state()
self.assertEqual(machine.state, 'B')
target = tempfile.NamedTemporaryFile()
machine.get_graph().draw(target.name, prog='dot')
self.assertTrue(getsize(target.name) > 0)
target.close()
def setUp(self):
NestedState.separator = '_'
states = ['A', 'B', {'name': 'C', 'children': ['1', '2', {'name': '3', 'children': ['a', 'b', 'c']}]},
'D', 'E', 'F']
self.stuff = Stuff(states, machine_cls=MachineFactory.get_predefined(locked=True, nested=True))
self.stuff.heavy_processing = heavy_processing
self.stuff.machine.add_transition('forward', '*', 'B', before='heavy_processing')
s = Stuff(self.machine_cls)
s.advance()
assert s.is_TWO()
assert s.message == 'Hello'
s.reverse()
assert s.is_ONE()
assert s.message == 'Goodbye'
@skipIf(enum is None, "enum is not available")
class TestNestedStateEnums(TestEnumsAsStates):
machine_cls = MachineFactory.get_predefined(nested=True)
def test_root_enums(self):
states = [self.States.RED, self.States.YELLOW,
{'name': self.States.GREEN, 'children': ['tick', 'tock'], 'initial': 'tick'}]
m = self.machine_cls(states=states, initial=self.States.GREEN)
self.assertTrue(m.is_GREEN(allow_substates=True))
self.assertTrue(m.is_GREEN_tick())
m.to_RED()
self.assertTrue(m.state is self.States.RED)
# self.assertEqual(m.state, self.States.GREEN)
def test_nested_enums(self):
# Nested enums are currently not support since model.state does not contain any information about parents
# and nesting
states = ['A', 'B',
{'name': 'C', 'children': self.States, 'initial': self.States.GREEN}]