Ejemplo n.º 1
0
    def testPngRendering(self):
        tiles = settings.MS_SHARED ["tiles"]
        resolutions = settings.MS_SHARED ["resolutions"]
        
        pages_expected = []
        for t in tiles:
            for w in resolutions:
                tilepages = self.pages / (t*t)
                if self.pages % (t*t) > 0: tilepages += 1
                for p in range(1, tilepages+1):
                    pages_expected += [Page(self.uuid, t, t, w, p)]

        pages_real = []
        
        for page, data in render_pages(self.uuid, self.f_pdfdoc, self.render_dirname):
            # check for png magic
            current_magic = data.read(len(self.png_magic))
            self.assertTrue(current_magic == self.png_magic)
            if hasattr(data, "close"):
                data.close()
            pages_real += [page]
        
        self.assertEqual(len(pages_expected), len(pages_real))
Ejemplo n.º 2
0
Archivo: tasks.py Proyecto: natano/ecs
def rerender_pages(identifier=None, **kwargs):
    import tempfile, shutil
    from ecs.mediaserver.mediaprovider import MediaProvider
    from ecs.mediaserver.renderer import render_pages

    logger = rerender_pages.get_logger(**kwargs)
    logger.debug("rerender_pages called with identifier %s" % identifier)

    if identifier is None:
        logger.warning("Warning, rerender_pages(identifier is None)")
        return False, str(None), "identifier is none"

    mediaprovider = MediaProvider()
    try:
        filelike = mediaprovider.getBlob(identifier)
    except KeyError as exceptobj:
        logger.error("rerender_pages could not getBlob(%s), exception was %r" % (identifier, exceptobj))
        return False, str(identifier), repr(exceptobj)

    try:
        render_dirname = tempfile.mkdtemp()

        for page, data in render_pages(identifier, filelike, render_dirname):
            mediaprovider.setPage(page, data, use_render_diskcache=True)
            if hasattr(data, "close"):
                data.close()

    except IOError as exceptobj:
        logger.error("render_pages of blob %s returned an IOError: %r" % (identifier, exceptobj))
        result = False, str(identifier), repr(exceptobj)
    else:
        result = True, str(identifier), ""
    finally:
        shutil.rmtree(render_dirname)

    return result