def test_render_none(self):
     """
     Test XML rendering.
     """
     renderer = XMLRenderer()
     content = renderer.render({'field': None}, 'application/xml')
     self.assertXMLContains(content, '<field></field>')
 def test_render_float(self):
     """
     Test XML rendering.
     """
     renderer = XMLRenderer()
     content = renderer.render({'field': 123.4}, 'application/xml')
     self.assertXMLContains(content, '<field>123.4</field>')
 def test_render_decimal(self):
     """
     Test XML rendering.
     """
     renderer = XMLRenderer()
     content = renderer.render({'field': Decimal('111.2')}, 'application/xml')
     self.assertXMLContains(content, '<field>111.2</field>')
 def test_render_string(self):
     """
     Test XML rendering.
     """
     renderer = XMLRenderer()
     content = renderer.render({'field': 'astring'}, 'application/xml')
     self.assertXMLContains(content, '<field>astring</field>')
Example #5
0
    def render(self, data, accepted_media_type=None, renderer_context=None):
        """
        First renders `data` into serialized XML, afterwards start fop and return PDF
        """
        if data is None:
            return ''

        super(XSLFORenderer, self).render(data, accepted_media_type, renderer_context)

        xml_renderer = XMLRenderer()
        xml_string = xml_renderer.render(data, accepted_media_type, renderer_context)
        xml_file = open(renderer_context['view'].file_name, "wb+")
        xml_file.truncate()
        xml_file.write(xml_string.encode('utf-8'))
        xml_file.close()
        # perform xsl transformation
        self.perform_xsl_transformation(xml_file,
                                        self.xsl_file,
                                        self.fop_config_file,
                                        self.file_output_pdf)

        # Read file
        with open(self.file_output_pdf, 'rb') as f:
            rendered_output = f.read()

        return rendered_output
 def test_render_complex_data(self):
     """
     Test XML rendering.
     """
     renderer = XMLRenderer()
     content = renderer.render(self._complex_data, 'application/xml')
     self.assertXMLContains(content, '<sub_name>first</sub_name>')
     self.assertXMLContains(content, '<sub_name>second</sub_name>')
 def test_render_datetime(self):
     """
     Test XML rendering.
     """
     renderer = XMLRenderer()
     content = renderer.render({
         'field': datetime.datetime(2011, 12, 25, 12, 45, 00)
     }, 'application/xml')
     self.assertXMLContains(content, '<field>2011-12-25 12:45:00</field>')
    def test_render_and_parse_complex_data(self):
        """
        Test XML rendering.
        """
        renderer = XMLRenderer()
        content = StringIO(renderer.render(self._complex_data, 'application/xml'))

        parser = XMLParser()
        complex_data_out = parser.parse(content)
        error_msg = "complex data differs!IN:\n %s \n\n OUT:\n %s" % (repr(self._complex_data), repr(complex_data_out))
        self.assertEqual(self._complex_data, complex_data_out, error_msg)
 def test_render_list(self):
     renderer = XMLRenderer()
     content = renderer.render(self._complex_data, 'application/xml')
     self.assertXMLContains(content, '<sub_data_list><list-item>')
     self.assertXMLContains(content, '</list-item></sub_data_list>')
 def test_render_lazy(self):
     renderer = XMLRenderer()
     lazy = gettext_lazy('hello')
     content = renderer.render({'field': lazy}, 'application/xml')
     self.assertXMLContains(content, '<field>hello</field>')