def registrator(message_validator): for message_id in message_id_list: spec_cls = message_spec_fabric( message_id, base_spec=base_spec, validator_cls=message_validator, **attrs) self.message(spec_cls) return message_validator
id = 'edit__resize' verb = 'Resize window' class Validator(forms.Form): width = forms.IntegerField(min_value=1) height = forms.IntegerField(min_value=1) @staticmethod def params_wrapper(params): return {'edit_fields': params} simple_workflow.register_message(MessageSpec(id='minimize', verb='Minimize window')) simple_workflow.register_message(MessageSpec(id='maximize')) simple_workflow.register_message(message_spec_fabric(id='minimize_all')) simple_workflow.register_message(BasicStartMessage) @simple_workflow.register_handler class Start(SimpleStateTransition): message_id = 'start_workflow' states_from = ['init'] state_to = 'normal' @simple_workflow.register_handler class ToMinimized(SimpleStateTransition): message_id = 'minimize' states_from = ['normal', 'maximized'] state_to = 'minimized'
def test_fabric(self): spec = message_spec_fabric(id='cancel') self.assertEqual(spec.id, 'cancel') self.assertTrue(isinstance(spec, MessageSpec))