Skip to content

Commit 7bc058b

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 c937ab9 commit 7bc058b

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
@@ -175,12 +175,12 @@ def _format_marker(
175175
_operators: dict[str, Operator] = {
176176
"in": lambda lhs, rhs: lhs in rhs,
177177
"not in": lambda lhs, rhs: lhs not in rhs,
178-
"<": operator.lt,
179-
"<=": operator.le,
178+
"<": lambda _lhs, _rhs: False,
179+
"<=": operator.eq,
180180
"==": operator.eq,
181181
"!=": operator.ne,
182-
">=": operator.ge,
183-
">": operator.gt,
182+
">=": operator.eq,
183+
">": lambda _lhs, _rhs: False,
184184
}
185185

186186

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)