Update decimal test data to the most recent set from Mike Cowlishaw.
[python.git] / Lib / test / test_tcl.py
blob7057979dfe8d3b01cfe6b3ea5faf3aaf6e5e33c1
1 #!/usr/bin/env python
3 import unittest
4 import os
5 from test import test_support
7 # Skip this test if the _tkinter module wasn't built.
8 _tkinter = test_support.import_module('_tkinter')
10 from Tkinter import Tcl
11 from _tkinter import TclError
14 class TkinterTest(unittest.TestCase):
16 def testFlattenLen(self):
17 # flatten(<object with no length>)
18 self.assertRaises(TypeError, _tkinter._flatten, True)
21 class TclTest(unittest.TestCase):
23 def setUp(self):
24 self.interp = Tcl()
26 def testEval(self):
27 tcl = self.interp
28 tcl.eval('set a 1')
29 self.assertEqual(tcl.eval('set a'),'1')
31 def testEvalException(self):
32 tcl = self.interp
33 self.assertRaises(TclError,tcl.eval,'set a')
35 def testEvalException2(self):
36 tcl = self.interp
37 self.assertRaises(TclError,tcl.eval,'this is wrong')
39 def testCall(self):
40 tcl = self.interp
41 tcl.call('set','a','1')
42 self.assertEqual(tcl.call('set','a'),'1')
44 def testCallException(self):
45 tcl = self.interp
46 self.assertRaises(TclError,tcl.call,'set','a')
48 def testCallException2(self):
49 tcl = self.interp
50 self.assertRaises(TclError,tcl.call,'this','is','wrong')
52 def testSetVar(self):
53 tcl = self.interp
54 tcl.setvar('a','1')
55 self.assertEqual(tcl.eval('set a'),'1')
57 def testSetVarArray(self):
58 tcl = self.interp
59 tcl.setvar('a(1)','1')
60 self.assertEqual(tcl.eval('set a(1)'),'1')
62 def testGetVar(self):
63 tcl = self.interp
64 tcl.eval('set a 1')
65 self.assertEqual(tcl.getvar('a'),'1')
67 def testGetVarArray(self):
68 tcl = self.interp
69 tcl.eval('set a(1) 1')
70 self.assertEqual(tcl.getvar('a(1)'),'1')
72 def testGetVarException(self):
73 tcl = self.interp
74 self.assertRaises(TclError,tcl.getvar,'a')
76 def testGetVarArrayException(self):
77 tcl = self.interp
78 self.assertRaises(TclError,tcl.getvar,'a(1)')
80 def testUnsetVar(self):
81 tcl = self.interp
82 tcl.setvar('a',1)
83 self.assertEqual(tcl.eval('info exists a'),'1')
84 tcl.unsetvar('a')
85 self.assertEqual(tcl.eval('info exists a'),'0')
87 def testUnsetVarArray(self):
88 tcl = self.interp
89 tcl.setvar('a(1)',1)
90 tcl.setvar('a(2)',2)
91 self.assertEqual(tcl.eval('info exists a(1)'),'1')
92 self.assertEqual(tcl.eval('info exists a(2)'),'1')
93 tcl.unsetvar('a(1)')
94 self.assertEqual(tcl.eval('info exists a(1)'),'0')
95 self.assertEqual(tcl.eval('info exists a(2)'),'1')
97 def testUnsetVarException(self):
98 tcl = self.interp
99 self.assertRaises(TclError,tcl.unsetvar,'a')
101 def testEvalFile(self):
102 tcl = self.interp
103 filename = "testEvalFile.tcl"
104 fd = open(filename,'w')
105 script = """set a 1
106 set b 2
107 set c [ expr $a + $b ]
109 fd.write(script)
110 fd.close()
111 tcl.evalfile(filename)
112 os.remove(filename)
113 self.assertEqual(tcl.eval('set a'),'1')
114 self.assertEqual(tcl.eval('set b'),'2')
115 self.assertEqual(tcl.eval('set c'),'3')
117 def testEvalFileException(self):
118 tcl = self.interp
119 filename = "doesnotexists"
120 try:
121 os.remove(filename)
122 except Exception,e:
123 pass
124 self.assertRaises(TclError,tcl.evalfile,filename)
126 def testPackageRequireException(self):
127 tcl = self.interp
128 self.assertRaises(TclError,tcl.eval,'package require DNE')
131 def test_main():
132 test_support.run_unittest(TclTest, TkinterTest)
134 if __name__ == "__main__":
135 test_main()