Skip to content

Commit db038c5

Browse files
committed
Add test for inspect.getmembers
Make sure inspect.getmembers won't call properties or other dynamic attributes
1 parent 434a3e6 commit db038c5

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

Lib/test/test_inspect.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,6 +1191,23 @@ def f(self):
11911191
self.assertIn(('f', b.f), inspect.getmembers(b))
11921192
self.assertIn(('f', b.f), inspect.getmembers(b, inspect.ismethod))
11931193

1194+
def test_getmembers_static(self):
1195+
class Foo:
1196+
def __init__(bar):
1197+
self._bar = bar
1198+
1199+
@property
1200+
def bar(self):
1201+
# This property should not be called by getmembers
1202+
raise NotImplementedError
1203+
1204+
foobar = Foo(42)
1205+
try:
1206+
members = inspect.getmembers(foobar)
1207+
class_members = inspect.getmembers(Foo)
1208+
except NotImplementedError:
1209+
self.fail('getmembers() called property!')
1210+
11941211
def test_getmembers_VirtualAttribute(self):
11951212
class M(type):
11961213
def __getattr__(cls, name):

0 commit comments

Comments
 (0)