@@ -425,6 +425,29 @@ def test_get_triggers(self):
425
425
self .assertEqual (len (trans ), 3 )
426
426
self .assertTrue ('relax' in trans )
427
427
428
+ def test_get_nested_transitions (self ):
429
+ seperator = self .state_cls .separator
430
+ states = ['A' , {'name' : 'B' , 'children' : ['1' , '2' , {'name' : '3' , 'children' : ['a' , 'b' ],
431
+ 'transitions' : [['inner' , 'a' , 'b' ],
432
+ ['inner' , 'b' , 'a' ]]}],
433
+ 'transitions' : [['mid' , '1' , '1' ],
434
+ ['mid' , '2' , '3' ],
435
+ ['mid' , '3' , '1' ],
436
+ ['mid2' , '2' , '3' ],
437
+ ['mid_loop' , '1' , '1' ]]}]
438
+ transitions = [['outer' , 'A' , 'B' ],
439
+ ['outer' , ['A' , 'B' ], 'C' ]]
440
+ machine = self .stuff .machine_cls (states = states , transitions = transitions , initial = 'A' , auto_transitions = False )
441
+ self .assertEqual (10 , len (machine .get_transitions ()))
442
+ self .assertEqual (2 , len (machine .get_transitions (source = 'A' )))
443
+ self .assertEqual (2 , len (machine .get_transitions ('inner' )))
444
+ self .assertEqual (3 , len (machine .get_transitions ('mid' )))
445
+ self .assertEqual (3 , len (machine .get_transitions (dest = 'B{0}1' .format (seperator ))))
446
+ self .assertEqual (2 , len (machine .get_transitions (source = 'B{0}2' .format (seperator ),
447
+ dest = 'B{0}3' .format (seperator ))))
448
+ self .assertEqual (1 , len (machine .get_transitions (source = 'B{0}3{0}a' .format (seperator ),
449
+ dest = 'B{0}3{0}b' .format (seperator ))))
450
+
428
451
def test_internal_transitions (self ):
429
452
s = self .stuff
430
453
s .machine .add_transition ('internal' , 'A' , None , prepare = 'increase_level' )
0 commit comments