def test_format_page(self): from fanboi2.helpers.formatters import format_page from markupsafe import Markup request = self._makeRequest() page1 = self._makePage( body='**Markdown**', formatter='markdown', slug='page1', title='Page 1') page2 = self._makePage( body='<em>**HTML**</em>', formatter='html', slug='page2', title='Page 2') page3 = self._makePage( body='<em>**Plain**</em>', formatter='none', slug='page3', title='Page 3') tests = ( (page1, '<p><strong>Markdown</strong></p>\n'), (page2, '<em>**HTML**</em>'), (page3, '<em>**Plain**</em>'), ) for source, target in tests: self.assertEqual(format_page(None, request, source), Markup(target))
def _page_serializer(obj, request): """Serialize :class:`fanboi2.models.Page` into a :type:`dict`. :param obj: A :class:`fanboi2.models.Page` object. :param request: A :class:`pyramid.request.Request` object. :type obj: fanboi2.models.Page :type request: pyramid.request.Request :rtype: dict """ return { 'type': 'page', 'id': obj.id, 'body': obj.body, 'body_formatted': format_page(None, request, obj), 'formatter': obj.formatter, 'namespace': obj.namespace, 'slug': obj.slug, 'title': obj.title, 'updated_at': obj.updated_at or obj.created_at, 'path': request.route_path( 'api_page', page=obj.slug, ), }