def test_parse_test_data(self): form = TreeForm() form.add_field('name') form.add_field('second') form2 = TreeForm() form2.add_field('surname') form.add_sub_form(form2) form.parse_dict({ 'name': ['n1'], 'second': 'n2', 'TreeForm': [{ 'surname': ['s1'] }] }) assert form.get_value('name') == 'n1' assert form.get_value('second') == 'n2'
class GetReportTreeTest(TestCase): def setUp(self): super().setUp() self.form = TreeForm() self.form.add_field('name1', validators=[NotEmpty()]) self.form.add_field('name2', validators=[IsDigit()]) self.form_validator = ExampleFormValidator() self.form.add_form_validator(self.form_validator) self.child = TreeForm() self.child.add_field('name1', validators=[NotEmpty()]) self.child.add_field('name2', validators=[IsDigit()]) self.child_validator = ExampleFormValidator() self.child.add_form_validator(self.child_validator) self.form.add_sub_form(self.child) def run_form(self): data = { self.form.form_name_value: [self.form.get_name()] } return self.form.validate(data) def test_success(self): self.form.parse_dict({ 'name1': ['one'], 'TreeForm': [ { 'name1': ['two'], } ] }) assert self.run_form() is True assert self.form.get_report() == { 'childs': { 'TreeForm': { 0: { 'childs': {}, 'fields': { 'name1': { 'messages': [], 'success': True, 'values': [ { 'messages': [], 'success': True, 'value': 'two' } ] }, 'name2': { 'messages': [], 'success': True, 'values': [] } }, 'messages': [], 'success': True } } }, 'success': True, 'messages': [], 'fields': { 'name1': { 'success': True, 'messages': [], 'values': [{ 'value': 'one', 'success': True, 'messages': [], }] }, 'name2': { 'success': True, 'messages': [], 'values': [] }, }, } def test_error_at_form_validator(self): self.form.parse_dict({ 'name1': ['one'], 'TreeForm': [ { 'name1': ['two'], } ] }) self.form_validator._validate = False assert self.run_form() is False assert self.form.get_report() == { 'childs': { 'TreeForm': { 0: { 'childs': {}, 'fields': { 'name1': { 'messages': [], 'success': True, 'values': [ { 'messages': [], 'success': True, 'value': 'two' } ] }, 'name2': { 'messages': [], 'success': True, 'values': [] } }, 'messages': [], 'success': True } } }, 'success': False, 'messages': ['example validator'], 'fields': { 'name1': { 'success': True, 'messages': [], 'values': [{ 'value': 'one', 'success': True, 'messages': [], }] }, 'name2': { 'success': True, 'messages': [], 'values': [] }, }, } def test_error_at_field_validator_with_compiling(self): self.form.parse_dict({ 'TreeForm': [ { 'name1': ['two'], } ] }) assert self.run_form() is False assert self.form.get_report() == { 'childs': { 'TreeForm': { 0: { 'childs': {}, 'fields': { 'name1': { 'messages': [], 'success': True, 'values': [ { 'messages': [], 'success': True, 'value': 'two' } ] }, 'name2': { 'messages': [], 'success': True, 'values': [] } }, 'messages': [], 'success': True } } }, 'success': False, 'messages': [], 'fields': { 'name1': { 'success': False, 'messages': ['NotEmpty'], 'values': [] }, 'name2': { 'success': True, 'messages': [], 'values': [] }, }, } def test_error_at_field_value_validator(self): self.form.parse_dict({ 'name1': ['one'], 'name2': ['three'], 'TreeForm': [ { 'name1': ['two'], } ] }) assert self.run_form() is False assert self.form.get_report() == { 'childs': { 'TreeForm': { 0: { 'childs': {}, 'fields': { 'name1': { 'messages': [], 'success': True, 'values': [ { 'messages': [], 'success': True, 'value': 'two' } ] }, 'name2': { 'messages': [], 'success': True, 'values': [] } }, 'messages': [], 'success': True } } }, 'success': False, 'messages': [], 'fields': { 'name1': { 'success': True, 'messages': [], 'values': [{ 'value': 'one', 'success': True, 'messages': [], }] }, 'name2': { 'success': False, 'messages': [], 'values': [{ 'value': 'three', 'success': False, 'messages': ['IsDigit'], }] }, }, } def test_subform_error_at_form_validator(self): self.form.parse_dict({ 'name1': ['one'], 'TreeForm': [ { 'name1': ['two'], } ] }) self.child_validator._validate = False assert self.run_form() is False assert self.form.get_report() == { 'childs': { 'TreeForm': { 0: { 'childs': {}, 'fields': { 'name1': { 'messages': [], 'success': True, 'values': [ { 'messages': [], 'success': True, 'value': 'two' } ] }, 'name2': { 'messages': [], 'success': True, 'values': [] } }, 'messages': ['example validator'], 'success': False } } }, 'success': False, 'messages': [], 'fields': { 'name1': { 'success': True, 'messages': [], 'values': [{ 'value': 'one', 'success': True, 'messages': [], }] }, 'name2': { 'success': True, 'messages': [], 'values': [] }, }, } def test_subform_error_at_field_value_validator(self): self.form.parse_dict({ 'name1': ['one'], 'TreeForm': [ { 'name1': [], } ] }) assert self.run_form() is False assert self.form.get_report() == { 'childs': { 'TreeForm': { 0: { 'childs': {}, 'fields': { 'name1': { 'messages': ['NotEmpty'], 'success': False, 'values': [] }, 'name2': { 'messages': [], 'success': True, 'values': [] } }, 'messages': [], 'success': False } } }, 'success': False, 'messages': [], 'fields': { 'name1': { 'success': True, 'messages': [], 'values': [{ 'value': 'one', 'success': True, 'messages': [], }] }, 'name2': { 'success': True, 'messages': [], 'values': [] }, }, }