from tfw.fsm_base import FSMBase class SQLInjectionFSM(FSMBase): states = [ 'start', 'stripped_code', 'sql', 'commented_code', 'sql_with_substitutions', 'sql_output', 'end', ] transitions = [ {'trigger': 'webide', 'source': '*', 'dest': 'stripped_code'}, # TODO: delet this {'trigger': 'webide', 'source': 'start', 'dest': 'stripped_code'}, {'trigger': 'login', 'source': 'stripped_code', 'dest': 'sql'}, {'trigger': 'logger', 'source': 'sql', 'dest': 'commented_code'}, {'trigger': 'webide', 'source': 'commented_code', 'dest': 'sql_with_substitutions'}, {'trigger': 'logger', 'source': 'sql_with_substitutions', 'dest': 'sql_output'}, {'trigger': 'logger', 'source': 'sql_output', 'dest': 'end'}, {'trigger': 'reset', 'source': 'end', 'dest': 'start'}, ] def __init__(self): super().__init__('start')