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 3
3
[case testWeakrefRef]
4
4
import asyncio
5
5
import pytest # type: ignore [import-not-found]
6
- from weakref import ref
6
+ from weakref import proxy, ref
7
7
from mypy_extensions import mypyc_attr
8
8
9
9
@mypyc_attr(native_class=False)
10
10
class Object:
11
11
"""some random weakreffable object"""
12
- pass
12
+ def some_meth(self) -> int:
13
+ return 1
13
14
14
15
def test_weakref_ref():
15
16
obj = Object()
@@ -24,3 +25,19 @@ def test_weakref_ref_with_callback():
24
25
assert r() is obj
25
26
obj = None
26
27
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