3
from tkinter import ttk
4
from test.support import requires, run_unittest
6
import tkinter.test.support as support
10
class StyleTest(unittest.TestCase):
13
self.style = ttk.Style()
16
def test_configure(self):
18
style.configure('TButton', background='yellow')
19
self.failUnlessEqual(style.configure('TButton', 'background'),
21
self.failUnless(isinstance(style.configure('TButton'), dict))
26
style.map('TButton', background=[('active', 'background', 'blue')])
27
self.failUnlessEqual(style.map('TButton', 'background'),
28
[('active', 'background', 'blue')])
29
self.failUnless(isinstance(style.map('TButton'), dict))
32
def test_lookup(self):
34
style.configure('TButton', background='yellow')
35
style.map('TButton', background=[('active', 'background', 'blue')])
37
self.failUnlessEqual(style.lookup('TButton', 'background'), 'yellow')
38
self.failUnlessEqual(style.lookup('TButton', 'background',
39
['active', 'background']), 'blue')
40
self.failUnlessEqual(style.lookup('TButton', 'optionnotdefined',
41
default='iknewit'), 'iknewit')
44
def test_layout(self):
46
self.failUnlessRaises(tkinter.TclError, style.layout, 'NotALayout')
47
tv_style = style.layout('Treeview')
49
# "erase" Treeview layout
50
style.layout('Treeview', '')
51
self.failUnlessEqual(style.layout('Treeview'),
52
[('null', {'sticky': 'nswe'})]
56
style.layout('Treeview', tv_style)
57
self.failUnlessEqual(style.layout('Treeview'), tv_style)
59
# should return a list
60
self.failUnless(isinstance(style.layout('TButton'), list))
62
# correct layout, but "option" doesn't exist as option
63
self.failUnlessRaises(tkinter.TclError, style.layout, 'Treeview',
64
[('name', {'option': 'inexistent'})])
67
def test_theme_use(self):
68
self.failUnlessRaises(tkinter.TclError, self.style.theme_use,
71
curr_theme = self.style.theme_use()
73
for theme in self.style.theme_names():
74
if theme != curr_theme:
76
self.style.theme_use(theme)
79
# just one theme available, can't go on with tests
82
self.failIf(curr_theme == new_theme)
83
self.failIf(new_theme != self.style.theme_use())
85
self.style.theme_use(curr_theme)
88
tests_gui = (StyleTest, )
90
if __name__ == "__main__":
91
run_unittest(*tests_gui)