Skip to content

Commit e35f1d9

Browse files
[refactor] Create the SET_COMPARISON_FUNCTIONS once
Instead of creating it at runtime all the time
1 parent 2ff1881 commit e35f1d9

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

src/_pytest/assertion/_compare_set.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,14 @@ def _compare_lte_set(
8484
list[str],
8585
],
8686
]
87+
88+
SET_COMPARISON_FUNCTIONS: SetComparisonFunction = {
89+
# == can't be done here without a prior refactor because there's an additional
90+
# explanation for iterable in _compare_eq_any
91+
# "==": _compare_eq_set,
92+
"!=": lambda *a, **kw: ["Both sets are equal"],
93+
">=": _compare_gte_set,
94+
"<=": _compare_lte_set,
95+
">": _compare_gt_set,
96+
"<": _compare_lt_set,
97+
}

src/_pytest/assertion/util.py

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@
2020
from _pytest._io.saferepr import saferepr
2121
from _pytest._io.saferepr import saferepr_unlimited
2222
from _pytest.assertion._compare_set import _compare_eq_set
23-
from _pytest.assertion._compare_set import _compare_gt_set
24-
from _pytest.assertion._compare_set import _compare_gte_set
25-
from _pytest.assertion._compare_set import _compare_lt_set
26-
from _pytest.assertion._compare_set import _compare_lte_set
27-
from _pytest.assertion._compare_set import SetComparisonFunction
23+
from _pytest.assertion._compare_set import SET_COMPARISON_FUNCTIONS
2824
from _pytest.assertion._typing import _HighlightFunc
2925
from _pytest.config import Config
3026

@@ -216,14 +212,9 @@ def assertrepr_compare(
216212
"!=" | ">=" | "<=" | ">" | "<",
217213
set() | frozenset(),
218214
):
219-
set_compare_func: SetComparisonFunction = {
220-
"!=": lambda *a, **kw: ["Both sets are equal"],
221-
">=": _compare_gte_set,
222-
"<=": _compare_lte_set,
223-
">": _compare_gt_set,
224-
"<": _compare_lt_set,
225-
}
226-
explanation = set_compare_func[op](left, right, highlighter, verbose)
215+
explanation = SET_COMPARISON_FUNCTIONS[op](
216+
left, right, highlighter, verbose
217+
)
227218
case _:
228219
explanation = None
229220
except outcomes.Exit:

0 commit comments

Comments
 (0)