Author: Antonio Cuni <anto.c...@gmail.com> Branch: py3k Changeset: r54427:4deee06acd87 Date: 2012-04-16 17:23 +0200 http://bitbucket.org/pypy/pypy/changeset/4deee06acd87/
Log: test and fix by disabling the unicodeliststragegy when converting from bytes diff --git a/pypy/objspace/std/listobject.py b/pypy/objspace/std/listobject.py --- a/pypy/objspace/std/listobject.py +++ b/pypy/objspace/std/listobject.py @@ -1084,12 +1084,15 @@ w_list.lstorage = strategy.erase(intlist[:]) return - strlist = space.listview_str(w_iterable) - if strlist is not None: - w_list.strategy = strategy = space.fromcache(UnicodeListStrategy) - # need to copy because intlist can share with w_iterable - w_list.lstorage = strategy.erase(strlist[:]) - return + # XXX: listview_str works for bytes but not for strings, and the + # strategy works for strings but not for bytes. Disable it for now, + # but we'll need to fix it + ## strlist = space.listview_str(w_iterable) + ## if strlist is not None: + ## w_list.strategy = strategy = space.fromcache(UnicodeListStrategy) + ## # need to copy because intlist can share with w_iterable + ## w_list.lstorage = strategy.erase(strlist[:]) + ## return # xxx special hack for speed from pypy.interpreter.generator import GeneratorIterator diff --git a/pypy/objspace/std/test/test_listobject.py b/pypy/objspace/std/test/test_listobject.py --- a/pypy/objspace/std/test/test_listobject.py +++ b/pypy/objspace/std/test/test_listobject.py @@ -1134,6 +1134,10 @@ assert l == [] assert list(g) == [] + def test_list_from_bytes(self): + b = list(b'abc') + assert b == [97, 98, 99] + def test_uses_custom_iterator(self): # obscure corner case: space.listview*() must not shortcut subclasses # of dicts, because the OrderedDict in the stdlib relies on this. @@ -1158,7 +1162,6 @@ assert s == set(base(arg)) - class AppTestWithoutStrategies(object): def setup_class(cls): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit