# -*- coding: utf-8; -*- import colander import deform from pyramid import testing 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") self.session.add(person) self.session.commit() # standard (editable) node = colander.SchemaNode(PersonRef(self.request, session=self.session)) widget = widgets.ObjectRefWidget(self.request) field = self.make_field(node) html = widget.serialize(field, person.uuid) self.assertIn('Betty Boop')