def test_3(self): expected = "prev_value" mock_user = PicklableMock() mock_user.last_fields = PicklableMagicMock() value_mock = PicklableMock() value_mock.value = "prev_value" mock_user.last_fields.__getitem__.return_value = value_mock mock_user.settings = {"template_settings": {}} description = PicklableMock() description.need_load_context = True description.id = 5 lifetime = 10 items = None field = QuestionField(description, items, mock_user, lifetime) result = field.value self.assertEqual(expected, result)
def test_7_3(self): expected = "some_value" mock_value = PicklableMock() mock_value.value = None mock_user = PicklableMagicMock() mock_user.last_fields = PicklableMagicMock() mock_user.last_fields.__getitem__.return_value = mock_value description = PicklableMock() description.id = 5 description.default_value = expected description.available = True description.need_save_context = True lifetime = 10 items = {"value": "my_value", "available": True} field = QuestionField(description, items, mock_user, lifetime) field.fill(expected) result = field.value self.assertEqual(expected, result) self.assertEqual(expected, mock_value.value)
def test_breake(self): """ Тест проверяет выход из сценария если сработает флаг break_scenario """ registered_factories[Action] = action_factory actions["test"] = MockAction actions["break"] = MockAction actions["success"] = MockAction form_type = "form for doing smth" internal_form_key = "my form key" node_mock = { "form_key": internal_form_key, "actions": [{ "type": "test", "command": "jump", "nodes": {} }] } items = { "channels": "web", "form": form_type, "start_node_key": "node_1", "scenario_nodes": { "node_1": node_mock }, "actions": [{ "type": "success" }] } field_descriptor = PicklableMock(name="field_descriptor_mock") field_descriptor.filler.extract = PicklableMock( name="my_field_value_1", return_value=61) field_descriptor.fill_other = False field_descriptor.field_validator.actions = [] field_descriptor.on_filled_actions = [ BreakAction(), MockAction(command_name="break action result") ] field_descriptor.id = "age" internal_form = PicklableMock(name="internal_form_mock") internal_form.description.fields.items = PicklableMock( return_value=[("age", field_descriptor)]) internal_form.field.field_validator.requirement.check = PicklableMock( return_value=True) field = PicklableMock() field.description = field_descriptor field.value = 61 internal_form.fields = {field_descriptor: field, "age": field} internal_form.is_valid = PicklableMock(return_value=True) start_form_mock = PicklableMagicMock(name="start_form_mock") composite_form = PicklableMagicMock(name="form_mock") composite_form.forms = start_form_mock composite_form.set_valid = PicklableMock() context_forms = PicklableMagicMock(name="context_form_mock") context_forms.new = PicklableMock( return_value=PicklableMock(forms={"my form key": internal_form}, is_endless=PicklableMock( return_value=False))) current_node_mock = PicklableMock(name="current_node_mock") current_node_mock.form_key = "start_node_mock" current_node_mock.available_nodes = False user = PicklableMock() user.forms = context_forms user.scenario_models = PicklableMagicMock() user.scenario_models.__getitem__ = PicklableMock( name="scenario_mock", return_value=current_node_mock) text_preprocessing_result = None scenario = TreeScenario(items, 1) result = scenario.run(text_preprocessing_result, user) self.assertFalse(scenario.actions[0].called) self.assertEqual(result[0].name, "break action result")