3
0
Fork 0

fix: misc. improvements for display of grids, form errors

This commit is contained in:
Lance Edgar 2024-08-23 19:23:40 -05:00
parent bf2ca4b475
commit 2503836ef5
8 changed files with 183 additions and 70 deletions

View file

@ -461,15 +461,10 @@ class TestForm(TestCase):
# nb. no error message
self.assertNotIn('message', html)
# with single "static" error
dform['foo'].error = MagicMock(msg="something is wrong")
html = form.render_vue_field('foo')
self.assertIn(' message="something is wrong"', html)
# with single "dynamic" error
dform['foo'].error = MagicMock(msg="`something is wrong`")
html = form.render_vue_field('foo')
self.assertIn(':message="`something is wrong`"', html)
# with error message
with patch.object(form, 'get_field_errors', return_value=['something is wrong']):
html = form.render_vue_field('foo')
self.assertIn('something is wrong', html)
# add another field, but not to deform, so it should still
# display but with no widget
@ -527,18 +522,21 @@ class TestForm(TestCase):
def test_get_field_errors(self):
schema = self.make_schema()
# simple 'Required' validation failure
form = self.make_form(schema=schema)
dform = form.get_deform()
self.request.method = 'POST'
self.request.POST = {'foo': 'one'}
self.assertFalse(form.validate())
errors = form.get_field_errors('bar')
self.assertEqual(errors, ['Required'])
# no error
errors = form.get_field_errors('foo')
self.assertEqual(len(errors), 0)
# simple error
dform['foo'].error = MagicMock(msg="something is wrong")
errors = form.get_field_errors('foo')
self.assertEqual(len(errors), 1)
self.assertEqual(errors[0], "something is wrong")
# no errors
form = self.make_form(schema=schema)
self.request.POST = {'foo': 'one', 'bar': 'two'}
self.assertTrue(form.validate())
errors = form.get_field_errors('bar')
self.assertEqual(errors, [])
def test_validate(self):
schema = self.make_schema()