from fsm_base import FSMBase class SQLInjectionFSM(FSMBase): states = ['start', 'stripped_code', 'sql', 'commented_code', 'sql_with_substitutions', 'sql_output', 'end'] transitions = [ {'trigger': 'anchor_webide', 'source': 'start', 'dest': 'stripped_code'}, {'trigger': 'anchor_login', 'source': 'stripped_code', 'dest': 'sql'}, {'trigger': 'anchor_logger', 'source': 'sql', 'dest': 'commented_code'}, {'trigger': 'anchor_webide', 'source': 'commented_code', 'dest': 'sql_with_substitutions'}, {'trigger': 'anchor_logger', 'source': 'sql_with_substitutions', 'dest': 'sql_output'}, {'trigger': 'anchor_logger', 'source': 'sql_output', 'dest': 'end'}, {'trigger': 'reset', 'source': '*', 'dest': 'start'}, ] def __init__(self): super().__init__('start') fsm = SQLInjectionFSM()