Author: Carl Friedrich Bolz-Tereick <[email protected]>
Branch:
Changeset: r97744:a511d86377d6
Date: 2019-10-09 15:35 +0200
http://bitbucket.org/pypy/pypy/changeset/a511d86377d6/
Log: support utf8_len_w in the fake object space
diff --git a/pypy/objspace/fake/objspace.py b/pypy/objspace/fake/objspace.py
--- a/pypy/objspace/fake/objspace.py
+++ b/pypy/objspace/fake/objspace.py
@@ -149,6 +149,9 @@
is_root(w_obj)
return NonConstant(False)
+ def utf8_len_w(self, space):
+ return NonConstant((NonConstant("utf8len_foobar"), NonConstant(14)))
+
@not_rpython
def unwrap(self, w_obj):
raise NotImplementedError
diff --git a/pypy/objspace/fake/test/test_objspace.py
b/pypy/objspace/fake/test/test_objspace.py
--- a/pypy/objspace/fake/test/test_objspace.py
+++ b/pypy/objspace/fake/test/test_objspace.py
@@ -1,4 +1,5 @@
-import py
+import pytest
+from rpython.rlib.nonconst import NonConstant
from pypy.objspace.fake.objspace import FakeObjSpace, W_Root
from pypy.interpreter.argument import Arguments
from pypy.interpreter.typedef import TypeDef
@@ -63,8 +64,8 @@
def test_is_true(self):
space = self.space
space.translates(lambda: space.is_true(W_Root()))
- py.test.raises(AssertionError,
- space.translates, lambda: space.is_true(42))
+ with pytest.raises(AssertionError):
+ space.translates(lambda: space.is_true(42))
def test_unpackiterable(self):
space = self.space
@@ -79,3 +80,23 @@
space = self.space
space.translates(lambda: (space.get(W_Root(), W_Root()),
space.get(W_Root(), W_Root(), W_Root())))
+
+ def test_bug_utf8_len_w(self):
+ space = self.space
+
+ class A(object):
+ pass
+
+ def f():
+ s = NonConstant('a')
+ w_s = space.newutf8(s, 1)
+ t, l = space.utf8_len_w(w_s)
+ a = A()
+ if l == 1:
+ a.x = 1
+ else:
+ raise Exception
+ return a.x
+ space.translates(f)
+
+
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit