from PIL import ImagePalette from .helper import PillowTestCase, hopper class TestImagePutPalette(PillowTestCase): def test_putpalette(self): def palette(mode): im = hopper(mode).copy() im.putpalette(list(range(256)) * 3) p = im.getpalette() if p: return im.mode, p[:10] return im.mode self.assertRaises(ValueError, palette, "1") for mode in ["L", "LA", "P", "PA"]: self.assertEqual( palette(mode), ("PA" if "A" in mode else "P", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), ) self.assertRaises(ValueError, palette, "I") self.assertRaises(ValueError, palette, "F") self.assertRaises(ValueError, palette, "RGB") self.assertRaises(ValueError, palette, "RGBA") self.assertRaises(ValueError, palette, "YCbCr") def test_imagepalette(self): im = hopper("P") im.putpalette(ImagePalette.negative()) im.putpalette(ImagePalette.random()) im.putpalette(ImagePalette.sepia()) im.putpalette(ImagePalette.wedge())