|
6 | 6 | from test import support |
7 | 7 | from test.support import requires |
8 | 8 | from test.test_tkinter.support import setUpModule # noqa: F401 |
9 | | -from test.test_tkinter.support import AbstractTkTest, get_tk_patchlevel |
| 9 | +from test.test_tkinter.support import (AbstractTkTest, get_tk_patchlevel, |
| 10 | + requires_tk) |
10 | 11 |
|
11 | 12 | requires('gui') |
12 | 13 |
|
@@ -124,6 +125,25 @@ def test_theme_use(self): |
124 | 125 |
|
125 | 126 | self.style.theme_use(curr_theme) |
126 | 127 |
|
| 128 | + @requires_tk(9, 0) |
| 129 | + def test_theme_styles(self): |
| 130 | + # The 'default' theme is always available and defines the base styles. |
| 131 | + default_styles = self.style.theme_styles('default') |
| 132 | + self.assertIsInstance(default_styles, tuple) |
| 133 | + self.assertIn('.', default_styles) |
| 134 | + self.assertIn('TButton', default_styles) |
| 135 | + |
| 136 | + # Without an argument the current theme is used. |
| 137 | + styles = self.style.theme_styles() |
| 138 | + self.assertIsInstance(styles, tuple) |
| 139 | + self.assertIn('.', styles) |
| 140 | + |
| 141 | + for theme in self.style.theme_names(): |
| 142 | + self.assertIsInstance(self.style.theme_styles(theme), tuple) |
| 143 | + |
| 144 | + self.assertRaises(tkinter.TclError, |
| 145 | + self.style.theme_styles, 'nonexistingname') |
| 146 | + |
127 | 147 | def test_theme_settings(self): |
128 | 148 | style = self.style |
129 | 149 | theme = style.theme_use() |
|
0 commit comments