[Python-checkins] r77438 - in python/trunk: Lib/test/test_dictviews.py Objects/dictobject.c

alexandre.vassalotti python-checkins at python.org
Tue Jan 12 02:34:43 CET 2010


Author: alexandre.vassalotti
Date: Tue Jan 12 02:34:43 2010
New Revision: 77438

Log:
Fixed repr of dictionary views.


Modified:
   python/trunk/Lib/test/test_dictviews.py
   python/trunk/Objects/dictobject.c

Modified: python/trunk/Lib/test/test_dictviews.py
==============================================================================
--- python/trunk/Lib/test/test_dictviews.py	(original)
+++ python/trunk/Lib/test/test_dictviews.py	Tue Jan 12 02:34:43 2010
@@ -72,9 +72,18 @@
     def test_dict_repr(self):
         d = {1: 10, "a": "ABC"}
         self.assertTrue(isinstance(repr(d), str))
-        self.assertTrue(isinstance(repr(d.viewitems()), str))
-        self.assertTrue(isinstance(repr(d.viewkeys()), str))
-        self.assertTrue(isinstance(repr(d.viewvalues()), str))
+        r = repr(d.viewitems())
+        self.assertTrue(isinstance(r, str))
+        self.assertTrue(r == "dict_items([('a', 'ABC'), (1, 10)])" or
+                        r == "dict_items([(1, 10), ('a', 'ABC')])")
+        r = repr(d.viewkeys())
+        self.assertTrue(isinstance(r, str))
+        self.assertTrue(r == "dict_keys(['a', 1])" or
+                        r == "dict_keys([1, 'a'])")
+        r = repr(d.viewvalues())
+        self.assertTrue(isinstance(r, str))
+        self.assertTrue(r == "dict_values(['ABC', 10])" or
+                        r == "dict_values([10, 'ABC'])")
 
 
 def test_main():

Modified: python/trunk/Objects/dictobject.c
==============================================================================
--- python/trunk/Objects/dictobject.c	(original)
+++ python/trunk/Objects/dictobject.c	Tue Jan 12 02:34:43 2010
@@ -2886,7 +2886,8 @@
 		return NULL;
 
 	seq_str = PyObject_Repr(seq);
-	result = PyString_FromFormat("%s(%s)", Py_TYPE(dv)->tp_name, seq_str);
+	result = PyString_FromFormat("%s(%s)", Py_TYPE(dv)->tp_name,
+				     PyString_AS_STRING(seq_str));
 	Py_DECREF(seq_str);
 	Py_DECREF(seq);
 	return result;


More information about the Python-checkins mailing list