Author: Antonio Cuni <[email protected]>
Branch: py3k
Changeset: r57583:125172469521
Date: 2012-09-25 12:16 +0200
http://bitbucket.org/pypy/pypy/changeset/125172469521/
Log: we need to put the chek for the empty set inside the try/finally,
else the id() is never removed from currently_in_repr
diff --git a/pypy/objspace/std/setobject.py b/pypy/objspace/std/setobject.py
--- a/pypy/objspace/std/setobject.py
+++ b/pypy/objspace/std/setobject.py
@@ -1393,9 +1393,9 @@
if set_id in currently_in_repr:
return '%s(...)' % (s.__class__.__name__,)
currently_in_repr[set_id] = 1
- if not s:
- return '%s()' % (s.__class__.__name__,)
try:
+ if not s:
+ return '%s()' % (s.__class__.__name__,)
listrepr = repr([x for x in s])
if type(s) is set:
return '{%s}' % (listrepr[1:-1],)
diff --git a/pypy/objspace/std/test/test_setobject.py
b/pypy/objspace/std/test/test_setobject.py
--- a/pypy/objspace/std/test/test_setobject.py
+++ b/pypy/objspace/std/test/test_setobject.py
@@ -55,7 +55,9 @@
def test_space_newset(self):
s = self.space.newset()
assert self.space.str_w(self.space.repr(s)) == 'set()'
-
+ # check that the second time we don't get 'set(...)'
+ assert self.space.str_w(self.space.repr(s)) == 'set()'
+
def test_intersection_order(self):
# theses tests make sure that intersection is done in the correct order
# (smallest first)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit