def test_choice(self, get_schema, get_utility): class MockUtililty(object): def __call__(self, name): return SimpleVocabulary([ SimpleTerm(value='1st', title=u'first'), SimpleTerm(value='2nd', title=u'second'), ]) get_schema.return_value = self.schema get_utility.return_value = MockUtililty() renderer = Renderer(self.schema, place='list') context = MagicMock() context.portal_type = 'portal_type' context.choice = '1st' self.assertEqual(renderer.render(context, 'choice'), u'first') context.choice = '2nd' self.assertEqual(renderer.render(context, 'choice'), u'second')
def test_image(self): renderer = Renderer(self.schema, place='list') class MockContext(object): def getURL(self): return u'http://nohost/mockbrain' def absolute_url(self): return u'http://nohost/mockobject' context = MockContext() context.image = None self.assertEqual(renderer.render(context, 'image'), '') # if the context does not provide ICatalogBrain, absolute_url is used context.image = NamedImage() self.assertEqual( renderer.render(context, 'image'), u'<img src="http://nohost/mockobject/@@images/image/tile" />' ) # per default, the size on the detail view is different renderer = Renderer(self.schema, place='detail') self.assertEqual( renderer.render(context, 'image'), u'<img src="http://nohost/mockobject/@@images/image/mini" />' ) # if the context provides ICatalogBrain, getURL is used directlyProvides(context, ICatalogBrain) self.assertEqual( renderer.render(context, 'image'), u'<img src="http://nohost/mockbrain/@@images/image/mini" />' )
def render_value(self, field, value): renderer = Renderer(self.schema, place='list') context = namedtuple('MockContext', [field])(value) return renderer.render(context, field)