Skip to content

Commit fbdbef4

Browse files
Handle pypy which raises different exception type.
1 parent 87baf75 commit fbdbef4

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

tests/core/test_update_attributes.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,12 @@ def function():
8484

8585
self.assertEqual(function.__qualname__, "override_qualname")
8686

87-
self.assertRaises(TypeError, delattr, function, "__qualname__")
87+
# CPython raises TypeError when deleting __qualname__ from a function
88+
# because the C-level setter rejects a NULL value. PyPy raises
89+
# AttributeError instead. Both indicate that deletion is not supported.
90+
self.assertRaises(
91+
(TypeError, AttributeError), delattr, function, "__qualname__"
92+
)
8893

8994
def test_delete_qualname_modified_on_original(self):
9095
def function():
@@ -100,7 +105,12 @@ def wrapper(wrapped, instance, args, kwargs):
100105
self.assertEqual(function.__qualname__, "override_qualname")
101106
self.assertEqual(instance.__qualname__, "override_qualname")
102107

103-
self.assertRaises(TypeError, delattr, instance, "__qualname__")
108+
# CPython raises TypeError when deleting __qualname__ from a function
109+
# because the C-level setter rejects a NULL value. PyPy raises
110+
# AttributeError instead. Both indicate that deletion is not supported.
111+
self.assertRaises(
112+
(TypeError, AttributeError), delattr, instance, "__qualname__"
113+
)
104114

105115
def test_update_module(self):
106116
@passthru_decorator
@@ -188,7 +198,6 @@ def wrapper(wrapped, instance, args, kwargs):
188198
self.assertEqual(function.__annotations__, override_annotations)
189199
self.assertEqual(instance.__annotations__, override_annotations)
190200

191-
192201
def test_delete_annotations(self):
193202
@passthru_decorator
194203
def function():

0 commit comments

Comments
 (0)