1import unittest
2from unittests import wtc
3import wx
4
5#---------------------------------------------------------------------------
6
7class palette_Tests(wtc.WidgetTestCase):
8
9    def test_paletteCtor1(self):
10        # test with a bytearray like the original impl
11        rgb = bytearray(range(256))
12        p = wx.Palette(rgb, rgb, rgb)
13        self.assertTrue(p.IsOk())
14        self.assertTrue(p.GetColoursCount() == 256)
15        self.assertTrue(p.GetPixel(42, 42, 42) == 42)
16        self.assertTrue(p.GetRGB(64) == (64, 64, 64))
17        with self.assertRaises(IndexError):
18            p.GetRGB(257)
19
20
21    def test_paletteCtor2(self):
22        # and do the same using a list
23        rgb = list(range(256))
24        p = wx.Palette(rgb, rgb, rgb)
25        self.assertTrue(p.IsOk())
26        self.assertTrue(p.GetColoursCount() == 256)
27        self.assertTrue(p.GetPixel(42, 42, 42) == 42)
28        self.assertTrue(p.GetRGB(64) == (64, 64, 64))
29        with self.assertRaises(IndexError):
30            p.GetRGB(257)
31
32
33    def test_paletteCtor3(self):
34        p = wx.Palette()
35
36
37    def test_paletteCtor4(self):
38        p1 = wx.Palette()
39        p2 = wx.Palette(p1)
40
41
42    def test_paletteCreate1(self):
43        p = wx.Palette()
44        with self.assertRaises(TypeError):      # not sequences
45            p.Create(1, 2, 3)
46        with self.assertRaises(ValueError):     # not the same length
47            p.Create((1, 2, 3), (1, 2, 3), (1, 2))
48        with self.assertRaises(TypeError):      # not integers
49            p.Create((1, 2, 3), ("1", "2", "3"), (1, 2, 3))
50        with self.assertRaises(ValueError):     # outside of 0..255 range
51            p.Create((257, 2, 3), (1, 2, 3), (1, 2, 3))
52        with self.assertRaises(ValueError):     # outside of 0..255 range
53            p.Create((1, 2, 3), (-1, 2, 3), (1, 2, 3))
54
55                                                # range is okay, checking start and end
56        p.Create((1, 2, 3, 0), (1, 2, 3, 4), (1, 2, 3, 4))
57        p.Create((1, 2, 3, 255), (1, 2, 3, 4), (1, 2, 3, 4))
58
59
60    def test_paletteCreate2(self):
61        p = wx.Palette()
62        # 3 different kinds of sequences :)
63        self.assertTrue(p.Create((1, 2, 3), [4, 5, 6], bytearray([7, 8, 9])))
64        self.assertTrue(p.GetRGB(1) == (2, 5, 8))
65
66
67    def test_nullPalette(self):
68        wx.NullPalette
69
70#---------------------------------------------------------------------------
71
72
73if __name__ == '__main__':
74    unittest.main()
75