Author: Antonio Cuni <[email protected]>
Branch: hpy
Changeset: r98127:b848790a2adb
Date: 2019-11-21 16:06 +0100
http://bitbucket.org/pypy/pypy/changeset/b848790a2adb/
Log: fix test_handles, which now requires a more capable fake space
diff --git a/pypy/module/hpy_universal/test/test_handles.py
b/pypy/module/hpy_universal/test/test_handles.py
--- a/pypy/module/hpy_universal/test/test_handles.py
+++ b/pypy/module/hpy_universal/test/test_handles.py
@@ -1,38 +1,61 @@
+import pytest
from pypy.module.hpy_universal import handles
from pypy.module.hpy_universal.handles import HandleManager
+class FakeSpace(object):
+ def __init__(self):
+ self._cache = {}
+
+ def fromcache(self, cls):
+ if cls not in self._cache:
+ self._cache[cls] = cls(self)
+ return self._cache[cls]
+
+ def __getattr__(self, name):
+ return '<fakespace.%s>' % name
+
[email protected]
+def fakespace():
+ return FakeSpace()
+
+def test_fakespace(fakespace):
+ assert fakespace.w_ValueError == '<fakespace.w_ValueError>'
+ def x(space):
+ return object()
+ assert fakespace.fromcache(x) is fakespace.fromcache(x)
+
class TestHandleManager(object):
- def test_first_handle_is_not_zero(self):
- mgr = HandleManager(None)
+ def test_first_handle_is_not_zero(self, fakespace):
+ mgr = HandleManager(fakespace)
h = mgr.new('hello')
assert h > 0
- def test_new(self):
- mgr = HandleManager(None)
+ def test_new(self, fakespace):
+ mgr = HandleManager(fakespace)
h = mgr.new('hello')
assert mgr.handles_w[h] == 'hello'
- def test_close(self):
- mgr = HandleManager(None)
+ def test_close(self, fakespace):
+ mgr = HandleManager(fakespace)
h = mgr.new('hello')
assert mgr.close(h) is None
assert mgr.handles_w[h] is None
- def test_deref(self):
- mgr = HandleManager(None)
+ def test_deref(self, fakespace):
+ mgr = HandleManager(fakespace)
h = mgr.new('hello')
assert mgr.deref(h) == 'hello' # 'hello' is a fake W_Root
assert mgr.deref(h) == 'hello'
- def test_consume(self):
- mgr = HandleManager(None)
+ def test_consume(self, fakespace):
+ mgr = HandleManager(fakespace)
h = mgr.new('hello')
assert mgr.consume(h) == 'hello'
assert mgr.handles_w[h] is None
- def test_freelist(self):
- mgr = HandleManager(None)
+ def test_freelist(self, fakespace):
+ mgr = HandleManager(fakespace)
h0 = mgr.new('hello')
h1 = mgr.new('world')
assert mgr.consume(h0) == 'hello'
@@ -41,20 +64,15 @@
assert h2 == h0
assert mgr.free_list == []
- def test_dup(self):
- mgr = HandleManager(None)
+ def test_dup(self, fakespace):
+ mgr = HandleManager(fakespace)
h0 = mgr.new('hello')
h1 = mgr.dup(h0)
assert h1 != h0
assert mgr.consume(h0) == mgr.consume(h1) == 'hello'
-def test_using():
- mgr = HandleManager(None)
- class FakeSpace(object):
- @classmethod
- def fromcache(cls, x):
- return mgr
- space = FakeSpace()
- with handles.using(space, 'hello') as h:
+def test_using(fakespace):
+ mgr = fakespace.fromcache(HandleManager)
+ with handles.using(fakespace, 'hello') as h:
assert mgr.handles_w[h] == 'hello'
assert mgr.handles_w[h] is None
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit