Skip to content

Commit e58334e

Browse files
authored
gh-113937 Fix failures in type cache tests due to re-running (GH-113953)
1 parent c4992f4 commit e58334e

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

Lib/test/test_type_cache.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ class C:
6767

6868
type_assign_version(C)
6969
orig_version = type_get_version(C)
70-
self.assertNotEqual(orig_version, 0)
70+
if orig_version == 0:
71+
self.skipTest("Could not assign a valid type version")
7172

7273
type_modified(C)
7374
type_assign_specific_version_unsafe(C, orig_version + 5)
@@ -84,10 +85,11 @@ class TypeCacheWithSpecializationTests(unittest.TestCase):
8485
def tearDown(self):
8586
_clear_type_cache()
8687

87-
def _assign_and_check_valid_version(self, user_type):
88-
type_modified(user_type)
89-
type_assign_version(user_type)
90-
self.assertNotEqual(type_get_version(user_type), 0)
88+
def _assign_valid_version_or_skip(self, type_):
89+
type_modified(type_)
90+
type_assign_version(type_)
91+
if type_get_version(type_) == 0:
92+
self.skipTest("Could not assign valid type version")
9193

9294
def _assign_and_check_version_0(self, user_type):
9395
type_modified(user_type)
@@ -98,8 +100,6 @@ def _all_opnames(self, func):
98100
return set(instr.opname for instr in dis.Bytecode(func, adaptive=True))
99101

100102
def _check_specialization(self, func, arg, opname, *, should_specialize):
101-
self.assertIn(opname, self._all_opnames(func))
102-
103103
for _ in range(100):
104104
func(arg)
105105

@@ -113,7 +113,7 @@ class A:
113113
def foo(self):
114114
pass
115115

116-
self._assign_and_check_valid_version(A)
116+
self._assign_valid_version_or_skip(A)
117117

118118
def load_foo_1(type_):
119119
type_.foo
@@ -129,8 +129,8 @@ def load_foo_2(type_):
129129
self._check_specialization(load_foo_2, A, "LOAD_ATTR", should_specialize=False)
130130

131131
def test_class_load_attr_specialization_static_type(self):
132-
self._assign_and_check_valid_version(str)
133-
self._assign_and_check_valid_version(bytes)
132+
self._assign_valid_version_or_skip(str)
133+
self._assign_valid_version_or_skip(bytes)
134134

135135
def get_capitalize_1(type_):
136136
return type_.capitalize
@@ -164,7 +164,7 @@ class G:
164164
def x(self):
165165
return 9
166166

167-
self._assign_and_check_valid_version(G)
167+
self._assign_valid_version_or_skip(G)
168168

169169
def load_x_1(instance):
170170
instance.x
@@ -183,7 +183,7 @@ def test_store_attr_specialization_user_type(self):
183183
class B:
184184
__slots__ = ("bar",)
185185

186-
self._assign_and_check_valid_version(B)
186+
self._assign_valid_version_or_skip(B)
187187

188188
def store_bar_1(type_):
189189
type_.bar = 10
@@ -203,7 +203,7 @@ class F:
203203
def __init__(self):
204204
pass
205205

206-
self._assign_and_check_valid_version(F)
206+
self._assign_valid_version_or_skip(F)
207207

208208
def call_class_1(type_):
209209
type_()
@@ -222,7 +222,7 @@ def test_to_bool_specialization_user_type(self):
222222
class H:
223223
pass
224224

225-
self._assign_and_check_valid_version(H)
225+
self._assign_valid_version_or_skip(H)
226226

227227
def to_bool_1(instance):
228228
not instance

0 commit comments

Comments
 (0)