[Python-checkins] cpython (2.7): Issue #19320: test_tcl no longer fails when wantobjects is false.

serhiy.storchaka python-checkins at python.org
Wed Dec 25 16:31:08 CET 2013


http://hg.python.org/cpython/rev/6fe3e855a276
changeset:   88185:6fe3e855a276
branch:      2.7
parent:      88182:ff70c298dd60
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Wed Dec 25 17:28:50 2013 +0200
summary:
  Issue #19320: test_tcl no longer fails when wantobjects is false.

files:
  Lib/test/test_tcl.py |  45 +++++++++++++++++++++----------
  Misc/NEWS            |   2 +
  2 files changed, 32 insertions(+), 15 deletions(-)


diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py
--- a/Lib/test/test_tcl.py
+++ b/Lib/test/test_tcl.py
@@ -33,6 +33,7 @@
 
     def setUp(self):
         self.interp = Tcl()
+        self.wantobjects = self.interp.tk.wantobjects()
 
     def testEval(self):
         tcl = self.interp
@@ -178,24 +179,32 @@
     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(True), True if self.wantobjects else '1')
+        self.assertEqual(passValue(False), False if self.wantobjects else '0')
         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)
+            self.assertEqual(passValue(i), i if self.wantobjects else str(i))
         for f in (0.0, 1.0, -1.0, 1//3, 1/3.0,
                   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)
+            if self.wantobjects:
+                self.assertEqual(passValue(f), f)
             else:
-                self.assertEqual(passValue(f), f)
-        self.assertEqual(passValue((1, '2', (3.4,))), (1, '2', (3.4,)))
+                self.assertEqual(float(passValue(f)), f)
+        if self.wantobjects:
+            f = passValue(float('nan'))
+            self.assertNotEqual(f, f)
+            self.assertEqual(passValue(float('inf')), float('inf'))
+            self.assertEqual(passValue(-float('inf')), -float('inf'))
+        else:
+            f = float(passValue(float('nan')))
+            self.assertNotEqual(f, f)
+            self.assertEqual(float(passValue(float('inf'))), float('inf'))
+            self.assertEqual(float(passValue(-float('inf'))), -float('inf'))
+        self.assertEqual(passValue((1, '2', (3.4,))),
+                         (1, '2', (3.4,)) if self.wantobjects else '1 2 3.4')
 
     def test_splitlist(self):
         splitlist = self.interp.tk.splitlist
@@ -220,12 +229,15 @@
             ('a 3.4', ('a', '3.4')),
             (('a', 3.4), ('a', 3.4)),
             ((), ()),
-            (call('list', 1, '2', (3.4,)), (1, '2', (3.4,))),
+            (call('list', 1, '2', (3.4,)),
+                (1, '2', (3.4,)) if self.wantobjects else
+                ('1', '2', '3.4')),
         ]
         if tcl_version >= (8, 5):
             testcases += [
                 (call('dict', 'create', 1, u'\u20ac', '\xe2\x82\xac', (3.4,)),
-                        (1, u'\u20ac', u'\u20ac', (3.4,))),
+                    (1, u'\u20ac', u'\u20ac', (3.4,)) if self.wantobjects else
+                    ('1', '\xe2\x82\xac', '\xe2\x82\xac', '3.4')),
             ]
         for arg, res in testcases:
             self.assertEqual(splitlist(arg), res)
@@ -257,12 +269,15 @@
             (('a', 3.4), ('a', 3.4)),
             (('a', (2, 3.4)), ('a', (2, 3.4))),
             ((), ()),
-            (call('list', 1, '2', (3.4,)), (1, '2', (3.4,))),
+            (call('list', 1, '2', (3.4,)),
+                (1, '2', (3.4,)) if self.wantobjects else
+                ('1', '2', '3.4')),
         ]
         if tcl_version >= (8, 5):
             testcases += [
                 (call('dict', 'create', 12, u'\u20ac', '\xe2\x82\xac', (3.4,)),
-                        (12, u'\u20ac', u'\u20ac', (3.4,))),
+                    (12, u'\u20ac', u'\u20ac', (3.4,)) if self.wantobjects else
+                    ('12', '\xe2\x82\xac', '\xe2\x82\xac', '3.4')),
             ]
         for arg, res in testcases:
             self.assertEqual(split(arg), res)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -132,6 +132,8 @@
 Tests
 -----
 
+- Issue #19320: test_tcl no longer fails when wantobjects is false.
+
 - Issue #19683: Removed empty tests from test_minidom.  Initial patch by
   Ajitesh Gupta.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list