fromunittestimportTestCaseimportos.pathasospfromxml.etree.cElementTreeimportElementTree,fromstring,tostring,dumpfromtempfileimportNamedTemporaryFilefromsubprocessimportPopenassubfromcubicweb.utilsimportcan_do_pdf_conversionfromcubicweb.ext.xhtml2foimportReportTransformerDATADIR=osp.join(osp.dirname(__file__),'data')classPDFTC(TestCase):deftest_xhtml_to_fop_to_pdf(self):ifnotcan_do_pdf_conversion():self.skip('dependencies not available : check pysixt and fop')xmltree=ElementTree()xmltree.parse(osp.join(DATADIR,'sample1.xml'))foptree=ReportTransformer(u'contentmain').transform(xmltree)# nextfoptmp=NamedTemporaryFile()foptree.write(foptmp)foptmp.flush()pdftmp=NamedTemporaryFile()fopproc=sub(['/usr/bin/fop',foptmp.name,pdftmp.name])fopproc.wait()delfoptmppdftmp.seek(0)# a bit superstitiousreference=open(osp.join(DATADIR,'sample1.pdf'),'r').read()output=pdftmp.read()# XXX almost equals due to ID, creation date, so it seems to failself.assertEquals(len(output),len(reference))# cut begin & end 'cause they contain variyng dataself.assertTextEquals(output[150:1500],reference[150:1500])