diff options
author | Alexandre Vassalotti <alexandre@peadrop.com> | 2010-01-12 01:34:43 +0000 |
---|---|---|
committer | Alexandre Vassalotti <alexandre@peadrop.com> | 2010-01-12 01:34:43 +0000 |
commit | 58a96efde53a52d501cdf6db810fedb1d86ecdb9 (patch) | |
tree | 2e9337f063aa4e268a4f5799e200e984d52681e6 | |
parent | ae7731af45263a5951c20265d704df69d603a6d9 (diff) | |
download | cpython-git-58a96efde53a52d501cdf6db810fedb1d86ecdb9.tar.gz |
Fixed repr of dictionary views.
-rw-r--r-- | Lib/test/test_dictviews.py | 15 | ||||
-rw-r--r-- | Objects/dictobject.c | 3 |
2 files changed, 14 insertions, 4 deletions
diff --git a/Lib/test/test_dictviews.py b/Lib/test/test_dictviews.py index 8821139eb3..78561b76fe 100644 --- a/Lib/test/test_dictviews.py +++ b/Lib/test/test_dictviews.py @@ -72,9 +72,18 @@ class DictSetTest(unittest.TestCase): 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(): diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 9f46dfafef..b20d6f36e9 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -2886,7 +2886,8 @@ dictview_repr(dictviewobject *dv) 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; |