~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Lib/tkinter/test/test_ttk/test_style.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
ImportĀ upstreamĀ versionĀ 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import unittest
 
2
import tkinter
 
3
from tkinter import ttk
 
4
from test.support import requires, run_unittest
 
5
 
 
6
import tkinter.test.support as support
 
7
 
 
8
requires('gui')
 
9
 
 
10
class StyleTest(unittest.TestCase):
 
11
 
 
12
    def setUp(self):
 
13
        self.style = ttk.Style()
 
14
 
 
15
 
 
16
    def test_configure(self):
 
17
        style = self.style
 
18
        style.configure('TButton', background='yellow')
 
19
        self.failUnlessEqual(style.configure('TButton', 'background'),
 
20
            'yellow')
 
21
        self.failUnless(isinstance(style.configure('TButton'), dict))
 
22
 
 
23
 
 
24
    def test_map(self):
 
25
        style = self.style
 
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))
 
30
 
 
31
 
 
32
    def test_lookup(self):
 
33
        style = self.style
 
34
        style.configure('TButton', background='yellow')
 
35
        style.map('TButton', background=[('active', 'background', 'blue')])
 
36
 
 
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')
 
42
 
 
43
 
 
44
    def test_layout(self):
 
45
        style = self.style
 
46
        self.failUnlessRaises(tkinter.TclError, style.layout, 'NotALayout')
 
47
        tv_style = style.layout('Treeview')
 
48
 
 
49
        # "erase" Treeview layout
 
50
        style.layout('Treeview', '')
 
51
        self.failUnlessEqual(style.layout('Treeview'),
 
52
            [('null', {'sticky': 'nswe'})]
 
53
        )
 
54
 
 
55
        # restore layout
 
56
        style.layout('Treeview', tv_style)
 
57
        self.failUnlessEqual(style.layout('Treeview'), tv_style)
 
58
 
 
59
        # should return a list
 
60
        self.failUnless(isinstance(style.layout('TButton'), list))
 
61
 
 
62
        # correct layout, but "option" doesn't exist as option
 
63
        self.failUnlessRaises(tkinter.TclError, style.layout, 'Treeview',
 
64
            [('name', {'option': 'inexistent'})])
 
65
 
 
66
 
 
67
    def test_theme_use(self):
 
68
        self.failUnlessRaises(tkinter.TclError, self.style.theme_use,
 
69
            'nonexistingname')
 
70
 
 
71
        curr_theme = self.style.theme_use()
 
72
        new_theme = None
 
73
        for theme in self.style.theme_names():
 
74
            if theme != curr_theme:
 
75
                new_theme = theme
 
76
                self.style.theme_use(theme)
 
77
                break
 
78
        else:
 
79
            # just one theme available, can't go on with tests
 
80
            return
 
81
 
 
82
        self.failIf(curr_theme == new_theme)
 
83
        self.failIf(new_theme != self.style.theme_use())
 
84
 
 
85
        self.style.theme_use(curr_theme)
 
86
 
 
87
 
 
88
tests_gui = (StyleTest, )
 
89
 
 
90
if __name__ == "__main__":
 
91
    run_unittest(*tests_gui)