Commit b04faadb by Joseph Kahn Committed by Sébastien Eustace

Bugfix: Empty and Any markers saved to lockfile (#1650)

* do not write empty or any markers

* Update poetry/version/markers.py

Co-Authored-By: Sébastien Eustace <sebastien.eustace@gmail.com>

* Update test_markers.py
parent 648f7c58
...@@ -628,7 +628,15 @@ class MarkerUnion(BaseMarker): ...@@ -628,7 +628,15 @@ class MarkerUnion(BaseMarker):
return h return h
def __str__(self): def __str__(self):
return " or ".join(str(m) for m in self._markers) return " or ".join(
str(m) for m in self._markers if not m.is_any() and not m.is_empty()
)
def is_any(self):
return any(m.is_any() for m in self._markers)
def is_empty(self):
return all(m.is_empty() for m in self._markers)
def parse_marker(marker): def parse_marker(marker):
......
...@@ -354,6 +354,46 @@ def test_marker_union_union_duplicates(): ...@@ -354,6 +354,46 @@ def test_marker_union_union_duplicates():
) )
def test_marker_union_all_any():
union = MarkerUnion(parse_marker(""), parse_marker(""))
assert union.is_any()
def test_marker_union_not_all_any():
union = MarkerUnion(parse_marker(""), parse_marker(""), parse_marker("<empty>"))
assert union.is_any()
def test_marker_union_all_empty():
union = MarkerUnion(parse_marker("<empty>"), parse_marker("<empty>"))
assert union.is_empty()
def test_marker_union_not_all_empty():
union = MarkerUnion(
parse_marker("<empty>"), parse_marker("<empty>"), parse_marker("")
)
assert not union.is_empty()
def test_marker_str_conversion_skips_empty_and_any():
union = MarkerUnion(
parse_marker("<empty>"),
parse_marker(
'sys_platform == "darwin" or python_version <= "3.6" or os_name == "Windows"'
),
parse_marker(""),
)
assert str(union) == (
'sys_platform == "darwin" or python_version <= "3.6" or os_name == "Windows"'
)
def test_intersect_compacts_constraints(): def test_intersect_compacts_constraints():
m = parse_marker('python_version < "4.0"') m = parse_marker('python_version < "4.0"')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment