Skip to content

Commit 9c93331

Browse files
committed
add tests for canonicalizing extras names in evaluate_marker
Add tests to verify that the names of extras are canonicalized properly when used by evaluate_marker().
1 parent fac7ee6 commit 9c93331

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

tests/test_requirements_file.py

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
import pathlib
22
import textwrap
3+
from itertools import product
34

4-
from fromager.requirements_file import RequirementType, parse_requirements_file
5+
import pytest
6+
from packaging.markers import Marker
7+
from packaging.requirements import Requirement
8+
9+
from fromager.requirements_file import (
10+
RequirementType,
11+
evaluate_marker,
12+
parse_requirements_file,
13+
)
514

615

716
def test_get_requirements_requirements_file(tmp_path: pathlib.Path):
@@ -50,3 +59,15 @@ def test_compare_req_type():
5059
# make sure they equal themselves
5160
for r in RequirementType:
5261
assert r == r
62+
63+
64+
@pytest.mark.parametrize(
65+
"parent_e,marker_e,extras_e", list(product(["b-c", "b_c", "B_C"], repeat=3))
66+
)
67+
def test_evaluate_marker_canonical_names(parent_e, marker_e, extras_e):
68+
parent_req = Requirement(f"a[{parent_e}]")
69+
req = Requirement("d")
70+
marker = Marker(f"extra == '{marker_e}'")
71+
req.marker = marker
72+
extras = set([extras_e])
73+
assert evaluate_marker(parent_req=parent_req, req=req, extras=extras)

0 commit comments

Comments
 (0)