Skip to content

Commit 933ef8b

Browse files
committed
fix: follow current spec update
Comparisons relying on order are always False. Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
1 parent 071dd9f commit 933ef8b

2 files changed

Lines changed: 22 additions & 10 deletions

File tree

src/packaging/markers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,12 +174,12 @@ def _format_marker(
174174
_operators: dict[str, Operator] = {
175175
"in": lambda lhs, rhs: lhs in rhs,
176176
"not in": lambda lhs, rhs: lhs not in rhs,
177-
"<": operator.lt,
178-
"<=": operator.le,
177+
"<": lambda _lhs, _rhs: False,
178+
"<=": operator.eq,
179179
"==": operator.eq,
180180
"!=": operator.ne,
181-
">=": operator.ge,
182-
">": operator.gt,
181+
">=": operator.eq,
182+
">": lambda _lhs, _rhs: False,
183183
}
184184

185185

tests/test_markers.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,25 @@ def test_base_class(self) -> None:
8080

8181
class TestOperatorEvaluation:
8282
def test_prefers_pep440(self) -> None:
83-
assert Marker('"2.7.9" < python_full_version').evaluate(dict(python_full_version="2.7.10"))
84-
assert not Marker('"2.7.9" < python_full_version').evaluate(dict(python_full_version="2.7.8"))
83+
assert Marker('"2.7.9" < python_full_version').evaluate(
84+
dict(python_full_version="2.7.10")
85+
)
86+
assert not Marker('"2.7.9" < python_full_version').evaluate(
87+
dict(python_full_version="2.7.8")
88+
)
8589

86-
def test_falls_back_to_python(self) -> None:
87-
assert Marker('"b" < python_full_version').evaluate(dict(python_full_version="c"))
88-
assert not Marker('"b" < python_full_version').evaluate(dict(python_full_version="a"))
89-
assert Marker('"b" > "a"').evaluate(dict(a="a"))
90+
def test_new_string_rules(self) -> None:
91+
assert not Marker('"b" < python_full_version').evaluate(
92+
dict(python_full_version="c")
93+
)
94+
assert not Marker('"b" < python_full_version').evaluate(
95+
dict(python_full_version="a")
96+
)
97+
assert not Marker('"b" > "a"').evaluate(dict(a="a"))
98+
assert not Marker('"b" < "a"').evaluate(dict(a="a"))
99+
assert not Marker('"b" >= "a"').evaluate(dict(a="a"))
100+
assert not Marker('"b" <= "a"').evaluate(dict(a="a"))
101+
assert Marker('"a" <= "a"').evaluate(dict(a="a"))
90102

91103
def test_fails_when_undefined(self) -> None:
92104
with pytest.raises(UndefinedComparison):

0 commit comments

Comments
 (0)