summaryrefslogtreecommitdiff
path: root/tests/test_metadata.py
diff options
context:
space:
mode:
authorBenoit Pierre <benoit.pierre@gmail.com>2018-01-03 17:03:48 +0100
committerAlex Grönholm <alex.gronholm@nextday.fi>2018-01-03 18:03:48 +0200
commit447f26571e5221758d2d3e39470454104bdf9e13 (patch)
tree480124bc96069b3d7ed646f9f30bee7a206651bf /tests/test_metadata.py
parent88c480e7679700b43810cd6020fef9104bef6237 (diff)
downloadwheel-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.py25
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