| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import unittest
- import tkinter
- from tkinter import ttk
- from test.support import requires, run_unittest
- from tkinter.test.support import AbstractTkTest
- requires('gui')
- class StyleTest(AbstractTkTest, unittest.TestCase):
- def setUp(self):
- super().setUp()
- self.style = ttk.Style(self.root)
- def test_configure(self):
- style = self.style
- style.configure('TButton', background='yellow')
- self.assertEqual(style.configure('TButton', 'background'),
- 'yellow')
- self.assertIsInstance(style.configure('TButton'), dict)
- def test_map(self):
- style = self.style
- style.map('TButton', background=[('active', 'background', 'blue')])
- self.assertEqual(style.map('TButton', 'background'),
- [('active', 'background', 'blue')] if self.wantobjects else
- [('active background', 'blue')])
- self.assertIsInstance(style.map('TButton'), dict)
- def test_lookup(self):
- style = self.style
- style.configure('TButton', background='yellow')
- style.map('TButton', background=[('active', 'background', 'blue')])
- self.assertEqual(style.lookup('TButton', 'background'), 'yellow')
- self.assertEqual(style.lookup('TButton', 'background',
- ['active', 'background']), 'blue')
- self.assertEqual(style.lookup('TButton', 'optionnotdefined',
- default='iknewit'), 'iknewit')
- def test_layout(self):
- style = self.style
- self.assertRaises(tkinter.TclError, style.layout, 'NotALayout')
- tv_style = style.layout('Treeview')
- # "erase" Treeview layout
- style.layout('Treeview', '')
- self.assertEqual(style.layout('Treeview'),
- [('null', {'sticky': 'nswe'})]
- )
- # restore layout
- style.layout('Treeview', tv_style)
- self.assertEqual(style.layout('Treeview'), tv_style)
- # should return a list
- self.assertIsInstance(style.layout('TButton'), list)
- # correct layout, but "option" doesn't exist as option
- self.assertRaises(tkinter.TclError, style.layout, 'Treeview',
- [('name', {'option': 'inexistent'})])
- def test_theme_use(self):
- self.assertRaises(tkinter.TclError, self.style.theme_use,
- 'nonexistingname')
- curr_theme = self.style.theme_use()
- new_theme = None
- for theme in self.style.theme_names():
- if theme != curr_theme:
- new_theme = theme
- self.style.theme_use(theme)
- break
- else:
- # just one theme available, can't go on with tests
- return
- self.assertFalse(curr_theme == new_theme)
- self.assertFalse(new_theme != self.style.theme_use())
- self.style.theme_use(curr_theme)
- tests_gui = (StyleTest, )
- if __name__ == "__main__":
- run_unittest(*tests_gui)
|