Skip to content

Commit 071395a

Browse files
committed
merge test_classify_gen
1 parent d922081 commit 071395a

1 file changed

Lines changed: 51 additions & 41 deletions

File tree

Lib/test/test_tools/test_inspection.py

Lines changed: 51 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -28,73 +28,83 @@ class ClassifierTests(unittest.TestCase):
2828
def test_classifiers(self):
2929
flat_lines = snippets.FLAT_ALTERNATING_LINES
3030
short_line = min(snippets.SHARED_LEAF_SHORT_LINES)
31+
flat_a = [
32+
frame("leaf_a", lineno=flat_lines["leaf_a"]),
33+
frame("hot_a", lineno=flat_lines["hot_a"]),
34+
]
35+
flat_crossed = [
36+
frame("hot_a", lineno=flat_lines["hot_a"]),
37+
frame("hot_b", lineno=flat_lines["hot_b"]),
38+
]
39+
shared_a = [
40+
frame("shared_leaf", lineno=short_line),
41+
frame("a_wrapper"),
42+
]
43+
shared_crossed = [
44+
frame("shared_leaf", lineno=short_line),
45+
frame("b_wrapper"),
46+
]
3147
cases = [
48+
(snippets.classify_flat, flat_a, False),
49+
(snippets.classify_flat, flat_crossed, True),
3250
(
33-
snippets.classify_flat,
34-
[
35-
frame("leaf_a", lineno=flat_lines["leaf_a"]),
36-
frame("hot_a", lineno=flat_lines["hot_a"]),
37-
],
38-
[
39-
frame("hot_a", lineno=flat_lines["hot_a"]),
40-
frame("hot_b", lineno=flat_lines["hot_b"]),
41-
],
51+
snippets.classify_nested,
52+
frames("burn_a", "a_leaf", "a_parent"),
53+
False,
4254
),
4355
(
4456
snippets.classify_nested,
45-
frames("burn_a", "a_leaf", "a_parent"),
4657
frames("a_parent", "a_leaf", "burn_a"),
58+
True,
4759
),
60+
(snippets.classify_shared, shared_a, False),
61+
(snippets.classify_shared, shared_crossed, True),
62+
(snippets.classify_gen, frames("agen", "drv_a"), False),
63+
(snippets.classify_gen, frames("agen", "drv_b"), True),
64+
(snippets.classify_gen, frames("bgen", "drv_a"), True),
65+
(snippets.classify_gen, frames("agen"), False),
4866
(
49-
snippets.classify_shared,
50-
[
51-
frame("shared_leaf", lineno=short_line),
52-
frame("a_wrapper"),
53-
],
54-
[
55-
frame("shared_leaf", lineno=short_line),
56-
frame("b_wrapper"),
57-
],
67+
snippets.classify_gen,
68+
frames("agen", "agen", "drv_a"),
69+
False,
5870
),
71+
72+
(snippets.classify_recursion, frames("a", "a"), False),
73+
(snippets.classify_recursion, frames("a", "b"), True),
5974
(
60-
snippets.classify_recursion,
61-
frames("a", "a"),
62-
frames("a", "b"),
75+
snippets.classify_async_running_task,
76+
(None, "hot", None, frames("leaf_hot")),
77+
False,
6378
),
6479
(
6580
snippets.classify_async_running_task,
66-
(None, "hot", None, frames("leaf_hot")),
6781
(None, "hot", None, frames("leaf_rare")),
82+
True,
6883
),
6984
(
7085
snippets.classify_code_object_reuse,
7186
[frame("func_a", filename="A_file.py")],
87+
False,
88+
),
89+
(
90+
snippets.classify_code_object_reuse,
7291
[frame("func_a", filename="B_file.py")],
92+
True,
7393
),
7494
(
7595
snippets.classify_oversized_chunk,
7696
[frame("big_a", filename="a.py")],
97+
False,
98+
),
99+
(
100+
snippets.classify_oversized_chunk,
77101
[frame("big_b", filename="a.py")],
102+
True,
78103
),
79104
]
80-
for classifier, unrecognized, recognized in cases:
81-
with self.subTest(classifier=classifier.__name__):
82-
self.assertFalse(classifier(unrecognized))
83-
self.assertTrue(classifier(recognized))
84-
85-
def test_classify_gen(self):
86-
cases = [
87-
(("agen", "drv_a"), False),
88-
(("agen", "drv_b"), True),
89-
(("bgen", "drv_a"), True),
90-
(("agen",), False),
91-
(("agen", "agen", "drv_a"), False),
92-
]
93-
for names, impossible in cases:
94-
with self.subTest(names=names):
95-
self.assertEqual(
96-
snippets.classify_gen(frames(*names)), impossible
97-
)
105+
for classifier, sample, expected in cases:
106+
with self.subTest(classifier=classifier.__name__, sample=sample):
107+
self.assertEqual(classifier(sample), expected)
98108

99109

100110
if __name__ == "__main__":

0 commit comments

Comments
 (0)