diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-30 18:49:52 +0200 |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-30 18:49:52 +0200 |
commit | 32c0d3ada52109f339c081d3408546a4af024b3c (patch) | |
tree | 899499d5056ea2c9f44e225ff073cfb1763846ae /Lib/tkinter/test | |
parent | 043868393969224947c03617475d31f64ea59634 (diff) | |
download | cpython-git-32c0d3ada52109f339c081d3408546a4af024b3c.tar.gz |
Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused
by representing the scale as float value internally in Tk. tkinter.IntVar
now works if float value is set to underlying Tk variable.
Diffstat (limited to 'Lib/tkinter/test')
-rw-r--r-- | Lib/tkinter/test/test_tkinter/test_variables.py | 5 | ||||
-rw-r--r-- | Lib/tkinter/test/test_ttk/test_extensions.py | 17 |
2 files changed, 15 insertions, 7 deletions
diff --git a/Lib/tkinter/test/test_tkinter/test_variables.py b/Lib/tkinter/test/test_tkinter/test_variables.py index 1f74453cea..d8ba9cea74 100644 --- a/Lib/tkinter/test/test_tkinter/test_variables.py +++ b/Lib/tkinter/test/test_tkinter/test_variables.py @@ -167,15 +167,14 @@ class TestIntVar(TestBase): self.assertEqual(123, v.get()) self.root.globalsetvar("name", "345") self.assertEqual(345, v.get()) + self.root.globalsetvar("name", "876.5") + self.assertEqual(876, v.get()) def test_invalid_value(self): v = IntVar(self.root, name="name") self.root.globalsetvar("name", "value") with self.assertRaises((ValueError, TclError)): v.get() - self.root.globalsetvar("name", "345.0") - with self.assertRaises((ValueError, TclError)): - v.get() class TestDoubleVar(TestBase): diff --git a/Lib/tkinter/test/test_ttk/test_extensions.py b/Lib/tkinter/test/test_ttk/test_extensions.py index f33945cef9..218b27fc30 100644 --- a/Lib/tkinter/test/test_ttk/test_extensions.py +++ b/Lib/tkinter/test/test_ttk/test_extensions.py @@ -69,14 +69,12 @@ class LabeledScaleTest(AbstractTkTest, unittest.TestCase): # variable initialization/passing passed_expected = (('0', 0), (0, 0), (10, 10), - (-1, -1), (sys.maxsize + 1, sys.maxsize + 1)) + (-1, -1), (sys.maxsize + 1, sys.maxsize + 1), + (2.5, 2), ('2.5', 2)) for pair in passed_expected: x = ttk.LabeledScale(self.root, from_=pair[0]) self.assertEqual(x.value, pair[1]) x.destroy() - x = ttk.LabeledScale(self.root, from_='2.5') - self.assertRaises((ValueError, tkinter.TclError), x._variable.get) - x.destroy() x = ttk.LabeledScale(self.root, from_=None) self.assertRaises((ValueError, tkinter.TclError), x._variable.get) x.destroy() @@ -155,8 +153,10 @@ class LabeledScaleTest(AbstractTkTest, unittest.TestCase): # The following update is needed since the test doesn't use mainloop, # at the same time this shouldn't affect test outcome x.update() + self.assertEqual(x.value, newval) self.assertEqual(x.label['text'], newval if self.wantobjects else str(newval)) + self.assertEqual(float(x.scale.get()), newval) self.assertGreater(x.scale.coords()[0], curr_xcoord) self.assertEqual(x.scale.coords()[0], int(x.label.place_info()['x'])) @@ -168,10 +168,19 @@ class LabeledScaleTest(AbstractTkTest, unittest.TestCase): conv = int x.value = conv(x.scale['to']) + 1 # no changes shouldn't happen x.update() + self.assertEqual(x.value, newval) self.assertEqual(conv(x.label['text']), newval) + self.assertEqual(float(x.scale.get()), newval) self.assertEqual(x.scale.coords()[0], int(x.label.place_info()['x'])) + # non-integer value + x.value = newval = newval + 1.5 + x.update() + self.assertEqual(x.value, int(newval)) + self.assertEqual(conv(x.label['text']), int(newval)) + self.assertEqual(float(x.scale.get()), newval) + x.destroy() |