Serhiy Storchaka added the comment:

I missed existing test_tcl. Patches updated, now they add new tests into 
test_tcl.

----------
Added file: http://bugs.python.org/file28959/tkinter_test_passing_values_2.patch
Added file: 
http://bugs.python.org/file28960/tkinter_test_passing_values-2.7_2.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue17118>
_______________________________________
diff -r 7ccdbd1cd213 Lib/test/test_tcl.py
--- a/Lib/test/test_tcl.py      Tue Feb 05 08:25:24 2013 +0100
+++ b/Lib/test/test_tcl.py      Tue Feb 05 15:10:21 2013 +0200
@@ -151,6 +151,26 @@
         # exit code must be zero
         self.assertEqual(f.close(), None)
 
+    def test_passing_values(self):
+        def passValue(value):
+            return self.interp.call('set', '_', value)
+
+        self.assertEqual(passValue(True), True)
+        self.assertEqual(passValue(False), False)
+        self.assertEqual(passValue('string'), 'string')
+        self.assertEqual(passValue('string\u20ac'), 'string\u20ac')
+        for i in (0, 1, -1, 2**31-1, -2**31):
+            self.assertEqual(passValue(i), i)
+        for f in (0.0, 1.0, -1.0, 1/3,
+                  sys.float_info.min, sys.float_info.max,
+                  -sys.float_info.min, -sys.float_info.max):
+            self.assertEqual(passValue(f), f)
+        for f in float('nan'), float('inf'), -float('inf'):
+            if f != f: # NaN
+                self.assertNotEqual(passValue(f), f)
+            else:
+                self.assertEqual(passValue(f), f)
+        self.assertEqual(passValue((1, '2', (3.4,))), (1, '2', (3.4,)))
 
 
 def test_main():
diff -r 7ccdbd1cd213 Lib/tkinter/test/test_tkinter/test_nogui.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/tkinter/test/test_tkinter/test_nogui.py       Tue Feb 05 15:10:21 
2013 +0200
@@ -0,0 +1,36 @@
+import unittest
+import sys
+import tkinter
+from test import support
+
+class NoguiTest(unittest.TestCase):
+
+    def setUp(self):
+        self.call = tkinter.Tcl().tk.call
+
+    def test_passing_values(self):
+        def passValue(value):
+            return self.call('set', '_', value)
+        #self.assertEqual(passValue(()), True)
+        self.assertEqual(passValue(True), True)
+        self.assertEqual(passValue(False), False)
+        self.assertEqual(passValue('string'), 'string')
+        self.assertEqual(passValue('string\u20ac'), 'string\u20ac')
+        for i in (0, 1, -1, 2**31-1, -2**31):
+            self.assertEqual(passValue(i), i)
+        for f in (0.0, 1.0, -1.0, 1/3,
+                  sys.float_info.min, sys.float_info.max,
+                  -sys.float_info.min, -sys.float_info.max):
+            self.assertEqual(passValue(f), f)
+        for f in float('nan'), float('inf'), -float('inf'):
+            if f != f: # NaN
+                self.assertNotEqual(passValue(f), f)
+            else:
+                self.assertEqual(passValue(f), f)
+        self.assertEqual(passValue((1, '2', (3.4,))), (1, '2', (3.4,)))
+
+
+tests_gui = (NoguiTest,)
+
+if __name__ == "__main__":
+    support.run_unittest(*tests_gui)
diff -r 20f0c5398e97 Lib/lib-tk/test/test_tkinter/test_nogui.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/lib-tk/test/test_tkinter/test_nogui.py        Tue Feb 05 15:14:22 
2013 +0200
@@ -0,0 +1,37 @@
+import unittest
+import sys
+import Tkinter as tkinter
+import test.test_support as support
+
+class NoguiTest(unittest.TestCase):
+
+    def setUp(self):
+        self.call = tkinter.Tcl().tk.call
+
+    def test_passing_values(self):
+        def passValue(value):
+            return self.call('set', '_', value)
+        self.assertEqual(passValue(True), True)
+        self.assertEqual(passValue(False), False)
+        self.assertEqual(passValue('string'), 'string')
+        self.assertEqual(passValue('string\u20ac'), 'string\u20ac')
+        self.assertEqual(passValue(u'string'), u'string')
+        self.assertEqual(passValue(u'string\u20ac'), u'string\u20ac')
+        for i in (0, 1, -1, int(2**31-1), int(-2**31)):
+            self.assertEqual(passValue(i), i)
+        for f in (0.0, 1.0, -1.0, 1/3,
+                  sys.float_info.min, sys.float_info.max,
+                  -sys.float_info.min, -sys.float_info.max):
+            self.assertEqual(passValue(f), f)
+        for f in float('nan'), float('inf'), -float('inf'):
+            if f != f: # NaN
+                self.assertNotEqual(passValue(f), f)
+            else:
+                self.assertEqual(passValue(f), f)
+        self.assertEqual(passValue((1, '2', (3.4,))), (1, '2', (3.4,)))
+
+
+tests_gui = (NoguiTest,)
+
+if __name__ == "__main__":
+    support.run_unittest(*tests_gui)
diff -r 20f0c5398e97 Lib/test/test_tcl.py
--- a/Lib/test/test_tcl.py      Mon Feb 04 10:29:38 2013 -0500
+++ b/Lib/test/test_tcl.py      Tue Feb 05 15:14:22 2013 +0200
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 
 import unittest
+import sys
 import os
 from test import test_support
 
@@ -151,6 +152,27 @@
         # exit code must be zero
         self.assertEqual(f.close(), None)
 
+    def test_passing_values(self):
+        def passValue(value):
+            return self.interp.call('set', '_', value)
+        self.assertEqual(passValue(True), True)
+        self.assertEqual(passValue(False), False)
+        self.assertEqual(passValue('string'), 'string')
+        self.assertEqual(passValue('string\u20ac'), 'string\u20ac')
+        self.assertEqual(passValue(u'string'), u'string')
+        self.assertEqual(passValue(u'string\u20ac'), u'string\u20ac')
+        for i in (0, 1, -1, int(2**31-1), int(-2**31)):
+            self.assertEqual(passValue(i), i)
+        for f in (0.0, 1.0, -1.0, 1/3,
+                  sys.float_info.min, sys.float_info.max,
+                  -sys.float_info.min, -sys.float_info.max):
+            self.assertEqual(passValue(f), f)
+        for f in float('nan'), float('inf'), -float('inf'):
+            if f != f: # NaN
+                self.assertNotEqual(passValue(f), f)
+            else:
+                self.assertEqual(passValue(f), f)
+        self.assertEqual(passValue((1, '2', (3.4,))), (1, '2', (3.4,)))
 
 
 def test_main():
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to