Skip to content

Commit 1854f7e

Browse files
committed
tests for Spec.parse
1 parent e99ab75 commit 1854f7e

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

minimum_versions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def parse(cls, spec_text):
7373
version = Version(version_text)
7474
segments = version.segments()
7575

76-
if len(segments) != 2 or (len(segments) == 3 and segments[2] != 0):
76+
if (len(segments) == 3 and segments[2] != [0]) or len(segments) > 3:
7777
warnings.append(
7878
f"package should be pinned to a minor version (got {version})"
7979
)

test_script.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import pytest
2+
from rattler import Version
3+
4+
from minimum_versions import Spec
5+
6+
7+
@pytest.mark.parametrize(
8+
["text", "expected_spec", "expected_name", "expected_warnings"],
9+
(
10+
("numpy=1.23", Spec("numpy", Version("1.23")), "numpy", []),
11+
("xarray=2024.10.0", Spec("xarray", Version("2024.10.0")), "xarray", []),
12+
(
13+
"xarray=2024.10.1",
14+
Spec("xarray", Version("2024.10.1")),
15+
"xarray",
16+
["package should be pinned to a minor version (got 2024.10.1)"],
17+
),
18+
),
19+
)
20+
def test_spec_parse(text, expected_spec, expected_name, expected_warnings):
21+
actual_spec, (actual_name, actual_warnings) = Spec.parse(text)
22+
23+
assert actual_spec == expected_spec
24+
assert actual_name == expected_name
25+
assert actual_warnings == expected_warnings

0 commit comments

Comments
 (0)