Exemple #1
0
 def test_xelatex_png(self):
     xelatex_doc_path = get_latex_file_dir("xelatex")
     for filename in os.listdir(xelatex_doc_path):
         file_path = os.path.join(xelatex_doc_path, filename)
         with self.subTest(filename=filename, test_name="xelatex"):
             tex_source = get_file_content(file_path).decode("utf-8")
             data_url = tex_to_img_converter(
                 "xelatex", tex_source, "png").get_converted_data_url()
             self.assertIsNotNone(data_url)
             self.assertTrue(data_url.startswith("data:image/png"))
Exemple #2
0
 def test_pdfsvg(self):
     pdf2svg_doc_path = get_latex_file_dir("pdf2svg")
     for filename in os.listdir(pdf2svg_doc_path):
         file_path = os.path.join(pdf2svg_doc_path, filename)
         with self.subTest(filename=filename, test_name="xelatex_svg"):
             tex_source = get_file_content(file_path).decode("utf-8")
             data_url = unzipped_folder_to_pdf_converter(
                 "xelatex", tex_source, "svg").get_converted_data_url()
             self.assertIsNotNone(data_url)
             self.assertTrue(data_url.startswith("data:image/svg"))
Exemple #3
0
 def test_more_than_one_pages_error(self):
     latex_doc_path = get_latex_file_dir("pdflatex_multilple_pages")
     for filename in os.listdir(latex_doc_path):
         file_path = os.path.join(latex_doc_path, filename)
         image_format = "png"
         with self.subTest(filename=filename,
                           test_name="pdflatex",
                           image_format=image_format):
             tex_source = get_file_content(file_path).decode("utf-8")
             with self.assertRaises(ImageConvertError):
                 unzipped_folder_to_pdf_converter(
                     "pdflatex", tex_source,
                     image_format).get_converted_data_url()
Exemple #4
0
    def test_do_convert_success_but_no_images(self):
        doc_path = get_latex_file_dir("xelatex")
        filename = os.listdir(doc_path)[0]
        file_path = os.path.join(doc_path, filename)
        tex_source = get_file_content(file_path).decode("utf-8")

        with mock.patch(
                "latex.converter.get_number_of_pdf_file") as mock_get_n_images:
            mock_get_n_images.return_value = 0
            with self.assertRaises(ImageConvertError) as cm:
                unzipped_folder_to_pdf_converter(
                    "xelatex", tex_source, "png").get_converted_data_url()
            self.assertIn("No image was generated", str(cm.exception))
Exemple #5
0
    def test_get_data_url_error(self):
        doc_path = get_latex_file_dir("xelatex")
        filename = os.listdir(doc_path)[0]
        file_path = os.path.join(doc_path, filename)
        tex_source = get_file_content(file_path).decode("utf-8")

        expected_error = "some error"
        with mock.patch("latex.converter.get_data_url") as mock_get_data_url:
            mock_get_data_url.side_effect = RuntimeError(expected_error)
            with self.assertRaises(ImageConvertError) as cm:
                unzipped_folder_to_pdf_converter(
                    "xelatex", tex_source, "svg").get_converted_data_url()
            self.assertIn(expected_error, str(cm.exception))
Exemple #6
0
    def test_compile_no_error_but_no_compiled_pdf_file(self):
        doc_path = get_latex_file_dir("xelatex")
        filename = os.listdir(doc_path)[0]
        file_path = os.path.join(doc_path, filename)
        tex_source = get_file_content(file_path).decode("utf-8")

        with mock.patch("latex.converter.Tex2ImgBase.compile_popen"
                        ) as mock_compile_subprocess:
            mock_compile_subprocess.return_value = ["foo", "", 0]
            with self.assertRaises(UnknownCompileError) as cm:
                unzipped_folder_to_pdf_converter(
                    "xelatex", tex_source, "png").get_converted_data_url()
            self.assertIn("No pdf file was generated.", str(cm.exception))
Exemple #7
0
    def test_convert_error(self):
        doc_path = get_latex_file_dir("xelatex")
        filename = os.listdir(doc_path)[0]
        file_path = os.path.join(doc_path, filename)
        tex_source = get_file_content(file_path).decode("utf-8")

        expected_error = "some error"
        with mock.patch("latex.converter.ImageConverter.convert_popen"
                        ) as mock_compile_subprocess:
            mock_compile_subprocess.return_value = ["bar", expected_error, 1]
            with self.assertRaises(ImageConvertError) as cm:
                unzipped_folder_to_pdf_converter(
                    "xelatex", tex_source, "svg").get_converted_data_url()
            self.assertIn(expected_error, str(cm.exception))
Exemple #8
0
    def test_imagemagick_convert_error(self):
        doc_path = get_latex_file_dir("xelatex")
        filename = os.listdir(doc_path)[0]
        file_path = os.path.join(doc_path, filename)
        tex_source = get_file_content(file_path).decode("utf-8")

        expected_error = "some ImageMagick error"
        with mock.patch(
                "latex.converter.wand_image.convert") as mock_im_convert:
            mock_im_convert.side_effect = RuntimeError(expected_error)
            with self.assertRaises(ImageConvertError) as cm:
                tex_to_img_converter("xelatex", tex_source,
                                     "png").get_converted_data_url()
            self.assertIn(expected_error, str(cm.exception))
Exemple #9
0
    def test_compile_error_no_log(self):
        doc_path = get_latex_file_dir("xelatex")
        filename = os.listdir(doc_path)[0]
        file_path = os.path.join(doc_path, filename)
        tex_source = get_file_content(file_path).decode("utf-8")

        expected_error = "some error"
        with mock.patch("latex.converter.Tex2ImgBase.compile_popen"
                        ) as mock_compile_subprocess:
            mock_compile_subprocess.return_value = ["foo", expected_error, 1]
            with self.assertRaises(LatexCompileError) as cm:
                tex_to_img_converter("xelatex", tex_source,
                                     "png").get_converted_data_url()
            self.assertIn(expected_error, str(cm.exception))
Exemple #10
0
 def test_latex_png_tizk_got_svg(self):
     latex_doc_path = get_latex_file_dir("latex2png")
     for image_format in ["png"]:
         for filename in os.listdir(latex_doc_path):
             file_path = os.path.join(latex_doc_path, filename)
             with self.subTest(filename=filename,
                               test_name="latex",
                               image_format=image_format):
                 tex_source = get_file_content(file_path).decode("utf-8")
                 data_url = unzipped_folder_to_pdf_converter(
                     "latex", tex_source,
                     image_format).get_converted_data_url()
                 self.assertIsNotNone(data_url)
                 self.assertTrue(
                     data_url.startswith("data:image/%s" % image_format))
Exemple #11
0
    def get_post_data(file_dir="xelatex", **kwargs):
        doc_folder_path = get_latex_file_dir(file_dir)
        file_path = os.path.join(doc_folder_path,
                                 os.listdir(doc_folder_path)[0])

        with open(file_path, encoding="utf-8") as f:
            file_data = f.read()

        data = {
            "compiler": "xelatex",
            "tex_source": file_data,
            "image_format": "png",
        }
        data.update(kwargs)
        return data
Exemple #12
0
 def test_pdflatex(self):
     pdflatex_doc_path = get_latex_file_dir("pdflatex")
     for image_format in ["png", "svg"]:
         for filename in os.listdir(pdflatex_doc_path):
             file_path = os.path.join(pdflatex_doc_path, filename)
             with self.subTest(filename=filename,
                               test_name="pdflatex",
                               image_format=image_format):
                 tex_source = get_file_content(file_path).decode("utf-8")
                 data_url = tex_to_img_converter(
                     "pdflatex",
                     tex_source,
                     image_format,
                 ).get_converted_data_url()
                 self.assertIsNotNone(data_url)
                 self.assertTrue(
                     data_url.startswith("data:image/%s" % image_format))
Exemple #13
0
    def get_post_data(file_dir="xelatex", **kwargs):
        as_text_field = kwargs.pop("as_text_field", False)
        doc_path = get_latex_file_dir(file_dir)
        file_path = os.path.join(doc_path, os.listdir(doc_path)[0])

        with open(file_path, encoding="utf-8") as f:
            file_data = f.read()

        data = {"compiler_format": "xelatex2png", "tex_key": ""}

        if not as_text_field:
            data["latex_file"] = SimpleUploadedFile("xelatex.tex",
                                                    file_data.encode(),
                                                    content_type="text/plain")
        else:
            data["latex_code"] = file_data
        data.update(kwargs)
        return data