from .helper import hopper, PillowTestCase

from PIL import Image, XVThumbImagePlugin

TEST_FILE = "Tests/images/hopper.p7"


class TestFileXVThumb(PillowTestCase):
    def test_open(self):
        # Act
        im = Image.open(TEST_FILE)

        # Assert
        self.assertEqual(im.format, "XVThumb")

        # Create a Hopper image with a similar XV palette
        im_hopper = hopper().quantize(palette=im)
        self.assert_image_similar(im, im_hopper, 9)

    def test_unexpected_eof(self):
        # Test unexpected EOF reading XV thumbnail file
        # Arrange
        bad_file = "Tests/images/hopper_bad.p7"

        # Act / Assert
        self.assertRaises(SyntaxError, XVThumbImagePlugin.XVThumbImageFile, bad_file)

    def test_invalid_file(self):
        # Arrange
        invalid_file = "Tests/images/flower.jpg"

        # Act / Assert
        self.assertRaises(
            SyntaxError, XVThumbImagePlugin.XVThumbImageFile, invalid_file
        )
