diff options
author | Robert Collins <rbtcollins@hp.com> | 2015-06-19 12:15:20 +1200 |
---|---|---|
committer | Robert Collins <rbtcollins@hp.com> | 2015-06-19 13:58:42 +1200 |
commit | 4b1503849c33cb9b6c0c0cb8b3322204d396249e (patch) | |
tree | 8fa86172f27943494c585728faacd45ad3b9f3f1 | |
parent | e41a9180ed3103bb45fa1d1be93ba951016b029c (diff) | |
download | pbr-4b1503849c33cb9b6c0c0cb8b3322204d396249e.tar.gz |
Strip markers from test requirements.1.2.0
Setuptools doesn't [yet] support markeres in tests_require parameters
to setup(). While we need to get that fixed, we also need to support
syncing marker constrained requirements from global-requirements.
Since version constraints are needed to successfully port to Python3
this won't be a long term viable solution: but few of our test-only
dependencies require version constraints, so we can do this in the
interim. The ones that do - such as python-mysql - we're either
moving away from, or centralising them into optional dependencies
on other packages where the tests_require limitation shouldn't apply.
Change-Id: I31adaf35c8d7b72fe3f8c9242cc356fe34d537e8
-rw-r--r-- | pbr/hooks/backwards.py | 3 | ||||
-rw-r--r-- | pbr/packaging.py | 10 | ||||
-rw-r--r-- | pbr/tests/testpackage/test-requirements.txt | 1 |
3 files changed, 11 insertions, 3 deletions
diff --git a/pbr/hooks/backwards.py b/pbr/hooks/backwards.py index adbacbf..01f07ab 100644 --- a/pbr/hooks/backwards.py +++ b/pbr/hooks/backwards.py @@ -29,4 +29,5 @@ class BackwardsCompatConfig(base.BaseConfig): packaging.append_text_list( self.config, 'tests_require', packaging.parse_requirements( - packaging.TEST_REQUIREMENTS_FILES)) + packaging.TEST_REQUIREMENTS_FILES, + strip_markers=True)) diff --git a/pbr/packaging.py b/pbr/packaging.py index 3bc625d..ebdfb09 100644 --- a/pbr/packaging.py +++ b/pbr/packaging.py @@ -81,7 +81,7 @@ def get_reqs_from_files(requirements_files): return [] -def parse_requirements(requirements_files=None): +def parse_requirements(requirements_files=None, strip_markers=False): if requirements_files is None: requirements_files = get_requirements_files() @@ -104,7 +104,8 @@ def parse_requirements(requirements_files=None): # -r other-requirements.txt if line.startswith('-r'): req_file = line.partition(' ')[2] - requirements += parse_requirements([req_file]) + requirements += parse_requirements( + [req_file], strip_markers=strip_markers) continue try: @@ -130,6 +131,11 @@ def parse_requirements(requirements_files=None): reason = 'Index Location' if line is not None: + if strip_markers: + semi_pos = line.find(';') + if semi_pos < 0: + semi_pos = None + line = line[:semi_pos] requirements.append(line) else: log.info( diff --git a/pbr/tests/testpackage/test-requirements.txt b/pbr/tests/testpackage/test-requirements.txt new file mode 100644 index 0000000..f283aff --- /dev/null +++ b/pbr/tests/testpackage/test-requirements.txt @@ -0,0 +1 @@ +ordereddict;python_version=='2.6' |