File tree Expand file tree Collapse file tree 1 file changed +19
-2
lines changed Expand file tree Collapse file tree 1 file changed +19
-2
lines changed Original file line number Diff line number Diff line change 33[case testWeakrefRef]
44import asyncio
55import pytest # type: ignore [import-not-found]
6- from weakref import ref
6+ from weakref import proxy, ref
77from mypy_extensions import mypyc_attr
88
99@mypyc_attr(native_class=False)
1010class Object:
1111 """some random weakreffable object"""
12- pass
12+ def some_meth(self) -> int:
13+ return 1
1314
1415def test_weakref_ref():
1516 obj = Object()
@@ -24,3 +25,19 @@ def test_weakref_ref_with_callback():
2425 assert r() is obj
2526 obj = None
2627 assert r() is None, r()
28+
29+ def test_weakref_proxy():
30+ obj = Object()
31+ p = proxy(obj)
32+ assert p.some_meth() == 1
33+ obj = None
34+ with pytest.raises(ReferenceError):
35+ p.some_meth()
36+
37+ def test_weakref_proxy_with_callback():
38+ obj = Object()
39+ p = proxy(obj, lambda x: x)
40+ assert p.some_meth() == 1
41+ obj = None
42+ with pytest.raises(ReferenceError):
43+ p.some_meth()
You can’t perform that action at this time.
0 commit comments