3
0
Fork 0

feat: improve widget, rendering for Role notes

This commit is contained in:
Lance Edgar 2024-08-13 16:29:34 -05:00
parent b4b72d92aa
commit bdfa0197b2
11 changed files with 201 additions and 19 deletions

View file

@ -8,8 +8,15 @@ from wuttaweb.forms import widgets
from wuttaweb.forms.schema import PersonRef
from tests.util import WebTestCase
class TestObjectRefWidget(WebTestCase):
def make_field(self, node, **kwargs):
# TODO: not sure why default renderer is in use even though
# pyramid_deform was included in setup? but this works..
kwargs.setdefault('renderer', deform.Form.default_renderer)
return deform.Field(node, **kwargs)
def test_serialize(self):
model = self.app.model
person = model.Person(full_name="Betty Boop")
@ -19,14 +26,14 @@ class TestObjectRefWidget(WebTestCase):
# standard (editable)
node = colander.SchemaNode(PersonRef(self.request, session=self.session))
widget = widgets.ObjectRefWidget(self.request)
field = deform.Field(node)
field = self.make_field(node)
html = widget.serialize(field, person.uuid)
self.assertIn('<select ', html)
self.assertIn('<b-select ', html)
# readonly
node = colander.SchemaNode(PersonRef(self.request, session=self.session))
node.model_instance = person
widget = widgets.ObjectRefWidget(self.request)
field = deform.Field(node)
field = self.make_field(node)
html = widget.serialize(field, person.uuid, readonly=True)
self.assertEqual(html, '<span>Betty Boop</span>')
self.assertEqual(html.strip(), '<span>Betty Boop</span>')