blob: ba7ee13a6934db3fbdda61fa4439dfcf004de1ce [file] [log] [blame]
import unittest
from python.pip_install.extract_wheels.lib import requirements
class TestRequirementExtrasParsing(unittest.TestCase):
def test_parses_requirement_for_extra(self) -> None:
cases = [
("name[foo]", ("name", frozenset(["foo"]))),
("name[ Foo123 ]", ("name", frozenset(["Foo123"]))),
(" name1[ foo ] ", ("name1", frozenset(["foo"]))),
(
"name [fred,bar] @ http://foo.com ; python_version=='2.7'",
("name", frozenset(["fred", "bar"])),
),
(
"name[quux, strange];python_version<'2.7' and platform_version=='2'",
("name", frozenset(["quux", "strange"])),
),
("name; (os_name=='a' or os_name=='b') and os_name=='c'", (None, None),),
("name@http://foo.com", (None, None),),
]
for case, expected in cases:
with self.subTest():
self.assertTupleEqual(
requirements._parse_requirement_for_extra(case), expected
)
if __name__ == "__main__":
unittest.main()