diff options
| author | Benoit Pierre <benoit.pierre@gmail.com> | 2018-01-03 17:03:48 +0100 |
|---|---|---|
| committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2018-01-03 18:03:48 +0200 |
| commit | 447f26571e5221758d2d3e39470454104bdf9e13 (patch) | |
| tree | 480124bc96069b3d7ed646f9f30bee7a206651bf /tests/test_metadata.py | |
| parent | 88c480e7679700b43810cd6020fef9104bef6237 (diff) | |
| download | wheel-git-447f26571e5221758d2d3e39470454104bdf9e13.tar.gz | |
Fix handling of requirements' environment markers. (#213)
Parenthesize markers before adding the `and extra == "..."` clause
so it does not break the logic of the preceding expression when
`or` operands are used.
Diffstat (limited to 'tests/test_metadata.py')
| -rw-r--r-- | tests/test_metadata.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/test_metadata.py b/tests/test_metadata.py new file mode 100644 index 0000000..842d1d3 --- /dev/null +++ b/tests/test_metadata.py @@ -0,0 +1,25 @@ +from wheel.metadata import generate_requirements + + +def test_generate_requirements(): + extras_require = { + 'test': ['ipykernel', 'ipython', 'mock'], + 'test:python_version == "3.3"': ['pytest<3.3.0'], + 'test:python_version >= "3.4" or python_version == "2.7"': ['pytest'], + } + expected_metadata = [ + ('Provides-Extra', + 'test'), + ('Requires-Dist', + "ipykernel; extra == 'test'"), + ('Requires-Dist', + "ipython; extra == 'test'"), + ('Requires-Dist', + "mock; extra == 'test'"), + ('Requires-Dist', + 'pytest (<3.3.0); (python_version == "3.3") and extra == \'test\''), + ('Requires-Dist', + 'pytest; (python_version >= "3.4" or python_version == "2.7") and extra == \'test\''), + ] + generated_metadata = sorted(set(generate_requirements(extras_require))) + assert generated_metadata == expected_metadata |
