summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2017-08-10 11:23:10 -0500
committerStephen Finucane <stephenfin@redhat.com>2017-12-06 11:01:52 +0000
commit225e8823221ac724336c1039111964b02d8363a3 (patch)
treeeef4329f7353342577fbba471b75170409e8bdc4
parentcd3e4f2949545389bd39d195e1556c3e5bf1d14a (diff)
downloadpbr-225e8823221ac724336c1039111964b02d8363a3.tar.gz
Put test-requirements into an extra named 'test'
In bindep files we use a 'test' environment to indicate dependencies that are needed for testing. Make the same thing available for our python dependencies, allowing things like "pip install .[test]" or "pip install shade[test]" to work. Change-Id: If3ad8b6a79a8cab2f7434b73207f35384e8516ba
-rw-r--r--pbr/tests/test_util.py8
-rw-r--r--pbr/tests/testpackage/test-requirements.txt1
-rw-r--r--pbr/util.py7
3 files changed, 14 insertions, 2 deletions
diff --git a/pbr/tests/test_util.py b/pbr/tests/test_util.py
index 048b2b9..370a7de 100644
--- a/pbr/tests/test_util.py
+++ b/pbr/tests/test_util.py
@@ -36,8 +36,12 @@ class TestExtrasRequireParsingScenarios(base.BaseTestCase):
baz>=3.2
foo
""",
- 'expected_extra_requires': {'first': ['foo', 'bar==1.0'],
- 'second': ['baz>=3.2', 'foo']}
+ 'expected_extra_requires': {
+ 'first': ['foo', 'bar==1.0'],
+ 'second': ['baz>=3.2', 'foo'],
+ 'test': ['requests-mock'],
+ "test:(python_version=='2.6')": ['ordereddict'],
+ }
}),
('with_markers', {
'config_text': """
diff --git a/pbr/tests/testpackage/test-requirements.txt b/pbr/tests/testpackage/test-requirements.txt
index f283aff..8755eb4 100644
--- a/pbr/tests/testpackage/test-requirements.txt
+++ b/pbr/tests/testpackage/test-requirements.txt
@@ -1 +1,2 @@
ordereddict;python_version=='2.6'
+requests-mock
diff --git a/pbr/util.py b/pbr/util.py
index ef4deb0..75fa01c 100644
--- a/pbr/util.py
+++ b/pbr/util.py
@@ -401,6 +401,13 @@ def setup_cfg_to_setup_kwargs(config, script_args=()):
if 'extras' in config:
requirement_pattern = '(?P<package>[^:]*):?(?P<env_marker>[^#]*?)(?:\s*#.*)?$'
extras = config['extras']
+ # Add contents of test-requirements, if any, into an extra named
+ # 'test' if one does not already exist.
+ if 'test' not in extras:
+ from pbr import packaging
+ extras['test'] = "\n".join(packaging.parse_requirements(
+ packaging.TEST_REQUIREMENTS_FILES)).replace(';', ':')
+
for extra in extras:
extra_requirements = []
requirements = split_multiline(extras[extra])