Ejemplo n.º 1
0
 def test_get_assets_thumbnails_get_thumbnail_bytes_raises_exception(self):
     self.xml_web_optimiser._optimised_assets = [
         utils.WebImageGenerator("1234-5678-rctb-45-05-0110-e01.tif", "."),
     ]
     result = self.xml_web_optimiser.get_assets_thumbnails()
     assets_thumbnails = [image_generator for image_generator in result]
     self.assertEqual(len(assets_thumbnails), 0)
Ejemplo n.º 2
0
 def test_create_WebImageGenerator_with_invalid_image_bytes(self):
     mocked_bytes = "This is not an image".encode("utf-8")
     with self.assertRaises(exceptions.WebImageGeneratorError) as exc_info:
         utils.WebImageGenerator("image_tiff_1.tiff", ".", mocked_bytes)
     self.assertEqual(
         str(exc_info.exception),
         'Error reading image "image_tiff_1.tiff": cannot parse this image',
     )
Ejemplo n.º 3
0
    def test_create_thumbnail_ok(self):
        filename = os.path.join(self.extracted_package, "image_tiff_1.png")
        create_image_file(filename, "PNG")

        web_image_generator = utils.WebImageGenerator("image_tiff_1.png",
                                                      self.extracted_package)
        web_image_generator.create_thumbnail()
        thumbnail_filename = os.path.splitext(filename)[0] + ".thumbnail.jpg"
        self.assertTrue(os.path.exists(thumbnail_filename))
Ejemplo n.º 4
0
 def test_convert2png_large_image_file_security_error(self, mk_open):
     mk_open.side_effect = Image.DecompressionBombError("ERROR!")
     text_file_path = os.path.join(self.extracted_package, "file.txt")
     web_image_generator = utils.WebImageGenerator("file.txt",
                                                   self.extracted_package)
     with self.assertRaises(exceptions.WebImageGeneratorError) as exc_info:
         web_image_generator.convert2png()
     self.assertIn("Error opening image file ", str(exc_info.exception))
     self.assertIn("file.txt", str(exc_info.exception))
Ejemplo n.º 5
0
 def test_get_thumbnail_bytes_no_image_object(self):
     web_image_generator = utils.WebImageGenerator("image_tiff_1.tiff",
                                                   self.extracted_package)
     with self.assertRaises(exceptions.WebImageGeneratorError) as exc_info:
         web_image_generator.get_thumbnail_bytes()
     self.assertEqual(
         str(exc_info.exception),
         'Error optimising image bytes from "image_tiff_1.tiff": '
         "no original file bytes was given.",
     )
Ejemplo n.º 6
0
 def test_create_thumbnail_file_does_not_exist(self):
     web_image_generator = utils.WebImageGenerator("no_file.tif",
                                                   self.extracted_package)
     with self.assertRaises(exceptions.WebImageGeneratorError) as exc_info:
         web_image_generator.create_thumbnail()
     self.assertIn("Error opening image file ", str(exc_info.exception))
     self.assertIn("no_file.tif", str(exc_info.exception))
     self.assertFalse(
         os.path.exists(os.path.join(self.extracted_package,
                                     "no_file.png")))
Ejemplo n.º 7
0
 def test_convert2png_ok(self):
     web_image_generator = utils.WebImageGenerator("image_tiff_2.tif",
                                                   self.extracted_package)
     web_image_generator.convert2png()
     self.assertTrue(
         os.path.exists(
             os.path.join(
                 self.extracted_package,
                 os.path.splitext("image_tiff_2.tif")[0] + ".png",
             )))
Ejemplo n.º 8
0
    def test_create_thumbnail_to_destination_path(self):
        destination_path = tempfile.mkdtemp(".")
        filename = os.path.join(self.extracted_package, "image_tiff_1.png")
        create_image_file(filename, "PNG")

        web_image_generator = utils.WebImageGenerator("image_tiff_1.png",
                                                      self.extracted_package)
        web_image_generator.create_thumbnail()
        thumbnail_filename = os.path.splitext(filename)[0] + ".thumbnail.jpg"
        is_thumbnail_ok = os.path.exists(thumbnail_filename)
        shutil.rmtree(destination_path)
        self.assertTrue(is_thumbnail_ok)
Ejemplo n.º 9
0
 def test_create_WebImageGenerator(self):
     web_image_generator = utils.WebImageGenerator("image_tiff_1.tiff",
                                                   self.extracted_package)
     self.assertEqual(web_image_generator.filename, "image_tiff_1.tiff")
     self.assertIsNone(web_image_generator._image_object)
     self.assertEqual(
         web_image_generator.image_file_path,
         os.path.join(self.extracted_package, "image_tiff_1.tiff"),
     )
     self.assertEqual(web_image_generator.png_filename, "image_tiff_1.png")
     self.assertEqual(web_image_generator.thumbnail_filename,
                      "image_tiff_1.thumbnail.jpg")
Ejemplo n.º 10
0
    def test_create_thumbnail_no_image_file(self):
        text_file_path = os.path.join(self.extracted_package, "file.txt")
        with open(text_file_path, "w") as fp:
            fp.write("Text file content.")

        web_image_generator = utils.WebImageGenerator("file.txt",
                                                      self.extracted_package)
        with self.assertRaises(exceptions.WebImageGeneratorError) as exc_info:
            web_image_generator.create_thumbnail()
        self.assertIn("Error opening image file ", str(exc_info.exception))
        self.assertIn("file.txt", str(exc_info.exception))
        self.assertFalse(
            os.path.exists(os.path.join(self.extracted_package, "file.png")))
Ejemplo n.º 11
0
    def test_convert2png_to_destination_path(self):
        destination_path = tempfile.mkdtemp(".")
        web_image_generator = utils.WebImageGenerator("image_tiff_2.tif",
                                                      self.extracted_package)
        web_image_generator.convert2png(destination_path)

        is_conversion_ok = os.path.exists(
            os.path.join(
                destination_path,
                os.path.splitext("image_tiff_2.tif")[0] + ".png",
            ))
        shutil.rmtree(destination_path)
        self.assertTrue(is_conversion_ok)
Ejemplo n.º 12
0
 def test__get_image_object_large_image_file_security_error(
         self, mk_img_parser_feed):
     mk_img_parser_feed.side_effect = Image.DecompressionBombError("ERROR!")
     mocked_image_io = io.BytesIO()
     mocked_image = Image.new("RGB", (10, 10))
     mocked_image.save(mocked_image_io, "TIFF")
     web_image_generator = utils.WebImageGenerator("image_tiff_2.tiff", ".")
     with self.assertRaises(exceptions.WebImageGeneratorError) as exc_info:
         web_image_generator._get_image_object(mocked_image_io.getvalue())
     self.assertEqual(
         str(exc_info.exception),
         'Error reading image "image_tiff_2.tiff": ERROR!',
     )
Ejemplo n.º 13
0
    def test_create_thumbnail_large_image_file_security_error(self, mk_open):
        mk_open.side_effect = Image.DecompressionBombError("ERROR!")
        text_file_path = os.path.join(self.extracted_package, "file.txt")
        with open(text_file_path, "w") as fp:
            fp.write("Text file content.")

        web_image_generator = utils.WebImageGenerator("file.txt",
                                                      self.extracted_package)
        with self.assertRaises(exceptions.WebImageGeneratorError) as exc_info:
            web_image_generator.create_thumbnail()
        self.assertIn("Error opening image file ", str(exc_info.exception))
        self.assertIn("file.txt", str(exc_info.exception))
        self.assertFalse(
            os.path.exists(os.path.join(self.extracted_package, "file.png")))
Ejemplo n.º 14
0
 def test_create_WebImageGenerator_with_file_bytes(self):
     mocked_image_io = io.BytesIO()
     mocked_image = Image.new("RGB", (10, 10))
     mocked_image.save(mocked_image_io, "TIFF")
     web_image_generator = utils.WebImageGenerator(
         "image_tiff_2.tiff", ".", mocked_image_io.getvalue())
     self.assertEqual(web_image_generator.filename, "image_tiff_2.tiff")
     self.assertEqual(web_image_generator.image_file_path,
                      "./image_tiff_2.tiff")
     self.assertEqual(web_image_generator.png_filename, "image_tiff_2.png")
     self.assertEqual(web_image_generator.thumbnail_filename,
                      "image_tiff_2.thumbnail.jpg")
     self.assertEqual(web_image_generator._image_object.tobytes(),
                      mocked_image.tobytes())
Ejemplo n.º 15
0
    def test_get_png_bytes_ok(self):
        mocked_image_io = io.BytesIO()
        mocked_image = Image.new("RGB", (10, 10))
        mocked_image.save(mocked_image_io, "TIFF")
        parser = ImageFile.Parser()
        parser.feed(mocked_image_io.getvalue())
        web_image_generator = utils.WebImageGenerator("image_tiff_1.tiff",
                                                      self.extracted_package)
        web_image_generator._image_object = parser.close()

        result = web_image_generator.get_png_bytes()

        image_expected = io.BytesIO()
        image_copy = web_image_generator._image_object.copy()
        image_copy.save(image_expected, "PNG")
        self.assertEqual(result, image_expected.getvalue())