From 37a1ce7f8529857a718022b250463251b7539dc7 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Fri, 23 Mar 2018 10:18:01 -0400 Subject: [PATCH] update parse test to use reliable comparison Different versions of setuptools seem to produce different representations of the version specifiers, so use pkg_resources to parse the values again and then compare the resulting objects so we aren't tripped up by rendering differences. Change-Id: Ic67cc936208dbd96b6d811c6aa284fd87df5b118 Signed-off-by: Doug Hellmann Closes-Bug: #1758877 --- pbr/tests/test_packaging.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py index da221d71..5512d5d6 100644 --- a/pbr/tests/test_packaging.py +++ b/pbr/tests/test_packaging.py @@ -884,7 +884,7 @@ class TestRequirementParsing(base.BaseTestCase): expected_requirements = { None: ['bar', 'requests-aws>=0.1.4'], ":(python_version=='2.6')": ['quux<1.0'], - ":(python_version=='2.7')": ['Routes>=1.12.3,!=2.0,!=2.1', + ":(python_version=='2.7')": ['Routes!=2.0,!=2.1,>=1.12.3', 'requests-kerberos>=0.6'], 'test': ['foo'], "test:(python_version=='2.7')": ['baz>3.2', 'bar>3.3'] @@ -903,7 +903,20 @@ class TestRequirementParsing(base.BaseTestCase): generated_requirements = dict( pkg_resources.split_sections(requires)) - self.assertEqual(expected_requirements, generated_requirements) + # NOTE(dhellmann): We have to spell out the comparison because + # the rendering for version specifiers in a range is not + # consistent across versions of setuptools. + + for section, expected in expected_requirements.items(): + exp_parsed = [ + pkg_resources.Requirement.parse(s) + for s in expected + ] + gen_parsed = [ + pkg_resources.Requirement.parse(s) + for s in generated_requirements[section] + ] + self.assertEqual(exp_parsed, gen_parsed) def get_soabi():