From 4188b2900dd15f1af5a75de0370eb439e0094dd5 Mon Sep 17 00:00:00 2001 From: Tony Breeds Date: Thu, 29 Sep 2016 16:21:32 +1000 Subject: [PATCH] Quick wins for python3 support Change-Id: I9b04543bd2fe9a3f52232040586041cb340a1133 --- openstack_requirements/cmds/generate.py | 10 ++++++---- openstack_requirements/tests/test_update.py | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/openstack_requirements/cmds/generate.py b/openstack_requirements/cmds/generate.py index 7495879828..d1b2ad2499 100644 --- a/openstack_requirements/cmds/generate.py +++ b/openstack_requirements/cmds/generate.py @@ -66,7 +66,7 @@ def _freeze(requirements, python): output = [] try: version_out = subprocess.check_output( - [python, "--version"], stderr=subprocess.STDOUT) + [python, "--version"], stderr=subprocess.STDOUT).decode('utf-8') output.append(version_out) version_all = version_out.split()[1] version = '.'.join(version_all.split('.')[:2]) @@ -78,7 +78,8 @@ def _freeze(requirements, python): [pip_bin, 'install', '-U', 'pip', 'setuptools', 'wheel'])) output.append(subprocess.check_output( [pip_bin, 'install', '-r', requirements])) - freeze = subprocess.check_output([pip_bin, 'freeze']) + freeze = subprocess.check_output( + [pip_bin, 'freeze']).decode('utf-8') output.append(freeze) return (version, _parse_freeze(freeze)) except Exception as exc: @@ -116,7 +117,8 @@ def _combine_freezes(freezes, blacklist=None): for package, versions in sorted(packages.items()): if package.lower() in excludes: continue - if len(versions) != 1 or versions.values()[0] != reference_versions: + if (len(versions) != 1 or + list(versions.values())[0] != reference_versions): # markers for version, py_versions in sorted(versions.items()): # Once the ecosystem matures, we can consider using OR. @@ -126,7 +128,7 @@ def _combine_freezes(freezes, blacklist=None): (package, version, py_version)) else: # no markers - yield '%s===%s\n' % (package, versions.keys()[0]) + yield '%s===%s\n' % (package, list(versions.keys())[0]) # -- untested UI glue from here down. diff --git a/openstack_requirements/tests/test_update.py b/openstack_requirements/tests/test_update.py index 038216d75e..cd5d8d3b20 100644 --- a/openstack_requirements/tests/test_update.py +++ b/openstack_requirements/tests/test_update.py @@ -14,7 +14,7 @@ from __future__ import print_function -import StringIO +import six import sys import textwrap @@ -42,7 +42,7 @@ class SmokeTest(testtools.TestCase): self.assertIn("jsonschema!=1.4.0,<2,>=1.0.0", global_reqs) # And test the end to end call of update.py, UI and all. self.project = self.useFixture(common.project_fixture) - capture = StringIO.StringIO() + capture = six.StringIO() update.main(['--source', global_env.root, self.project.root], capture) reqs = common._file_to_list(self.project.req_file) # ensure various updates take @@ -151,7 +151,7 @@ class UpdateTest(testtools.TestCase): actions = update._process_project( common.project_project, common.global_reqs, None, None, None, False) - capture = StringIO.StringIO() + capture = six.StringIO() project.write( common.project_project, actions, capture, False, True) expected = ('Version change for: greenlet, SQLAlchemy, eventlet, PasteDeploy, routes, WebOb, wsgiref, boto, kombu, pycrypto, python-swiftclient, lxml, jsonschema, python-keystoneclient\n' # noqa @@ -183,7 +183,7 @@ Updated %(project)s/test-requirements.txt: actions = update._process_project( common.project_project, common.global_reqs, None, None, None, False) - capture = StringIO.StringIO() + capture = six.StringIO() project.write( common.project_project, actions, capture, True, True) expected = ("""Syncing %(project)s/requirements.txt