Skip to content

Commit 0ad3ec2

Browse files
committed
Add more comments for test case
1 parent e1204b2 commit 0ad3ec2

1 file changed

Lines changed: 20 additions & 8 deletions

File tree

tests/test_multiple_interpreters.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -222,15 +222,27 @@ def test():
222222
223223
objects = m.get_objects_in_singleton()
224224
expected = [
225-
type(None),
226-
tuple,
227-
list,
228-
dict,
229-
collections.OrderedDict,
230-
collections.defaultdict,
231-
collections.deque,
225+
type(None), # static type: shared between interpreters
226+
tuple, # static type: shared between interpreters
227+
list, # static type: shared between interpreters
228+
dict, # static type: shared between interpreters
229+
collections.OrderedDict, # static type: shared between interpreters
230+
collections.defaultdict, # heap type: dynamically created per interpreter
231+
collections.deque, # heap type: dynamically created per interpreter
232232
]
233-
assert objects == expected, f"Expected {{expected!r}}, got {{objects!r}}."
233+
# Check that we have the expected objects. Avoid IndexError by checking lengths first.
234+
assert len(objects) == len(expected), (
235+
f"Expected {{expected!r}} ({{len(expected)}}), got {{objects!r}} ({{len(objects)}})."
236+
)
237+
# The first ones are static types shared between interpreters.
238+
assert objects[:-2] == expected[:-2], (
239+
f"Expected static objects {{expected!r}} ({{len(expected)}}), got {{objects!r}} ({{len(objects)}})."
240+
)
241+
# The last two are heap types created per-interpreter.
242+
# The expected objects are dynamically imported from `collections`.
243+
assert objects[-2:] == expected[-2:], (
244+
f"Expected heap objects {{expected!r}} ({{len(expected)}}), got {{objects!r}} ({{len(objects)}})."
245+
)
234246
235247
assert hasattr(m, 'MyClass'), "Module missing MyClass"
236248
assert hasattr(m, 'MyGlobalError'), "Module missing MyGlobalError"

0 commit comments

Comments
 (0)