[Python-checkins] r73094 - python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_tclvariables.py

guilherme.polo python-checkins at python.org
Mon Jun 1 04:32:34 CEST 2009


Author: guilherme.polo
Date: Mon Jun  1 04:32:34 2009
New Revision: 73094

Log:
Initial tests for classes that manipulate tcl variables.

Added:
   python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_tclvariables.py   (contents, props changed)

Added: python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_tclvariables.py
==============================================================================
--- (empty file)
+++ python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_tclvariables.py	Mon Jun  1 04:32:34 2009
@@ -0,0 +1,122 @@
+import unittest
+import Tkinter
+from test.test_support import run_unittest
+from ttk import setup_master
+
+class VariableTest(unittest.TestCase):
+
+    var_class = Tkinter.Variable
+
+    def setUp(self):
+        self.root = setup_master(useTk=False)
+        self.var = self.var_class(self.root)
+
+    def tearDown(self):
+        del self.var
+
+
+    def test__str__(self):
+        name = 'test123'
+        myvar = Tkinter.Variable(self.root, name=name)
+        self.assertEqual(str(myvar), name)
+        del myvar
+        self.assertRaises(Tkinter.TclError,
+                self.root.tk.globalgetvar, name)
+
+    def test_get_set(self):
+        self.assertEqual(self.var.get(), self.var_class._default)
+        self.var.set(1)
+        self.assertEqual(self.var.get(), 1)
+        self.var.set('1')
+        self.assertEqual(self.var.get(), '1')
+
+    def test_trace(self):
+        self.assertFalse(self.var.trace_vinfo())
+
+        read = [False]
+        def test_read(name1, name2, op):
+            self.assertEqual(op, 'r')
+            read.pop()
+        cb1 = self.var.trace_variable('r', test_read)
+        self.var.get()
+        self.assertFalse(read)
+
+        read_vinfo = self.var.trace_vinfo()
+
+        self.assertEqual(len(read_vinfo), 1)
+        cb2 = self.var.trace_variable('w', test_read)
+        self.assertEqual(len(self.var.trace_vinfo()), 2)
+
+        self.var.trace_vdelete('w', cb2)
+        self.assertEqual(self.var.trace_vinfo(), read_vinfo)
+        self.assertNotIn(cb2, self.var._master._tclCommands)
+        self.var.trace_vdelete('r', cb1)
+        self.assertNotIn(cb1, self.var._master._tclCommands)
+
+
+class StringVarTest(VariableTest):
+
+    var_class = Tkinter.StringVar
+
+    def test_get_set(self):
+        self.assertEqual(self.var.get(), self.var_class._default)
+        self.var.set(1)
+        self.assertEqual(self.var.get(), '1')
+        self.var.set('1')
+        self.assertEqual(self.var.get(), '1')
+
+
+class IntVarTest(VariableTest):
+
+    var_class = Tkinter.IntVar
+
+    def test_get_set(self):
+        self.assertEqual(self.var.get(), self.var_class._default)
+        self.var.set(1)
+        self.assertEqual(self.var.get(), 1)
+        self.var.set('1')
+        self.assertEqual(self.var.get(), 1)
+        self.var.set(True)
+        self.assertEqual(self.var.get(), int(True))
+
+        self.var.set([1, 2, 3])
+        self.assertRaises(ValueError, self.var.get)
+
+
+class DoubleVarTest(VariableTest):
+
+    var_class = Tkinter.DoubleVar
+
+    def test_get_set(self):
+        self.assertEqual(self.var.get(), self.var_class._default)
+        self.var.set(1.1)
+        self.assertEqual(self.var.get(), 1.1)
+        self.var.set('1.32')
+        self.assertEqual(self.var.get(), 1.32)
+
+        self.var.set({})
+        self.assertRaises(ValueError, self.var.get)
+
+
+class BooleanVarTest(VariableTest):
+
+    var_class = Tkinter.BooleanVar
+
+    def test_get_set(self):
+        self.assertEqual(self.var.get(), self.var_class._default)
+        for val in ['on', 1, True, '1', 'true']:
+            self.var.set(val)
+            self.assertEqual(self.var.get(), True)
+        for val in ['off', 0, False, '0', 'false']:
+            self.var.set(val)
+            self.assertEqual(self.var.get(), False)
+
+        self.var.set({})
+        self.assertRaises(Tkinter.TclError, self.var.get)
+
+
+tests_gui = (VariableTest, StringVarTest, IntVarTest,
+        DoubleVarTest, BooleanVarTest)
+
+if __name__ == "__main__":
+    run_unittest(*tests_gui)


More information about the Python-checkins mailing list