diff options
author | Clark Boylan <clark.boylan@gmail.com> | 2013-06-03 14:05:02 -0700 |
---|---|---|
committer | Clark Boylan <clark.boylan@gmail.com> | 2013-06-03 15:39:05 -0700 |
commit | b18913e5778b78e6e6d98da36cf88df0150f226e (patch) | |
tree | b83565aeb7d1db2def24b49441595277d31c94c6 | |
parent | e7b90361b9dcf14a702fe8c3527406135abde624 (diff) | |
download | pbr-b18913e5778b78e6e6d98da36cf88df0150f226e.tar.gz |
More python3 compatibility.
* pbr/packaging.py: Properly convert bytes into unicode strings and back
to bytes again. Replace os.path.walk() with os.walk().
* pbr/tests/__init__.py: Remove use of mox.
* pbr/tests/moxstubout.py: Remove use of mox.
* pbr/tests/test_setup.py: Use bytestrings instead of str or unicode
when performing IO.
* pbr/tests/test_version.py: Remove use of oslo.config.
* requirements.txt: Pin jinja2 to version compatible with python3.2.
* test-requirements.txt: Remove oslo.config and mox.
Change-Id: I9b5a32d7204fa2af56ecf4fdcf6b6da3bbb03200
-rw-r--r-- | pbr/packaging.py | 21 | ||||
-rw-r--r-- | pbr/tests/__init__.py | 2 | ||||
-rw-r--r-- | pbr/tests/moxstubout.py | 37 | ||||
-rw-r--r-- | pbr/tests/test_setup.py | 11 | ||||
-rw-r--r-- | pbr/tests/test_version.py | 46 | ||||
-rw-r--r-- | requirements.txt | 1 | ||||
-rw-r--r-- | test-requirements.txt | 2 |
7 files changed, 20 insertions, 100 deletions
diff --git a/pbr/packaging.py b/pbr/packaging.py index 0baff2c..d4b517d 100644 --- a/pbr/packaging.py +++ b/pbr/packaging.py @@ -136,7 +136,7 @@ def _run_shell_command(cmd, throw_on_error=False): return None if len(out[0].strip()) == 0: return None - return out[0].strip() + return out[0].strip().decode('utf-8') def _get_git_directory(): @@ -163,8 +163,9 @@ def write_git_changelog(git_dir=None, dest_dir=os.path.curdir, git_log_cmd = 'git --git-dir=%s log' % git_dir changelog = _run_shell_command(git_log_cmd) mailmap = read_git_mailmap(git_dir) - with open(new_changelog, "w") as changelog_file: - changelog_file.write(canonicalize_emails(changelog, mailmap)) + with open(new_changelog, "wb") as changelog_file: + changelog_file.write(canonicalize_emails( + changelog, mailmap).encode('utf-8')) def generate_authors(git_dir=None, dest_dir='.', option_dict=dict()): @@ -194,11 +195,12 @@ def generate_authors(git_dir=None, dest_dir='.', option_dict=dict()): changelog = "\n".join((changelog, new_entries)) mailmap = read_git_mailmap(git_dir) - with open(new_authors, 'w') as new_authors_fh: - new_authors_fh.write(canonicalize_emails(changelog, mailmap)) + with open(new_authors, 'wb') as new_authors_fh: + new_authors_fh.write(canonicalize_emails( + changelog, mailmap).encode('utf-8')) if os.path.exists(old_authors): - with open(old_authors, "r") as old_authors_fh: - new_authors_fh.write('\n' + old_authors_fh.read()) + with open(old_authors, "rb") as old_authors_fh: + new_authors_fh.write(b'\n' + old_authors_fh.read()) _rst_template = """%(heading)s @@ -262,8 +264,9 @@ try: os.makedirs(source_dir) for pkg in self.distribution.packages: if '.' not in pkg: - os.path.walk(pkg, _find_modules, modules) - module_list = modules.keys() + for dirpath, dirnames, files in os.walk(pkg): + _find_modules(modules, dirpath, files) + module_list = list(modules.keys()) module_list.sort() autoindex_filename = os.path.join(source_dir, 'autoindex.rst') with open(autoindex_filename, 'w') as autoindex: diff --git a/pbr/tests/__init__.py b/pbr/tests/__init__.py index 0dfd2e1..4814cfa 100644 --- a/pbr/tests/__init__.py +++ b/pbr/tests/__init__.py @@ -23,7 +23,6 @@ import testresources import testtools from pbr import packaging -from pbr.tests import moxstubout class BaseTestCase(testtools.TestCase, testresources.ResourcedTestCase): @@ -52,4 +51,3 @@ class BaseTestCase(testtools.TestCase, testresources.ResourcedTestCase): self.useFixture(fixtures.NestedTempfile()) self.useFixture(fixtures.FakeLogger()) - self.stubs = self.useFixture(moxstubout.MoxStubout()).stubs diff --git a/pbr/tests/moxstubout.py b/pbr/tests/moxstubout.py deleted file mode 100644 index f277fdd..0000000 --- a/pbr/tests/moxstubout.py +++ /dev/null @@ -1,37 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2010 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# Copyright 2013 Hewlett-Packard Development Company, L.P. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import fixtures -import mox -import stubout - - -class MoxStubout(fixtures.Fixture): - """Deal with code around mox and stubout as a fixture.""" - - def setUp(self): - super(MoxStubout, self).setUp() - # emulate some of the mox stuff, we can't use the metaclass - # because it screws with our generators - self.mox = mox.Mox() - self.stubs = stubout.StubOutForTesting() - self.addCleanup(self.mox.UnsetStubs) - self.addCleanup(self.stubs.UnsetAll) - self.addCleanup(self.stubs.SmartUnsetAll) - self.addCleanup(self.mox.VerifyAll) diff --git a/pbr/tests/test_setup.py b/pbr/tests/test_setup.py index 0cd45c3..ef85fa8 100644 --- a/pbr/tests/test_setup.py +++ b/pbr/tests/test_setup.py @@ -160,7 +160,8 @@ class GitLogsTest(tests.BaseTestCase): "os.path.exists", lambda path: os.path.abspath(path) in exist_files)) self.useFixture(fixtures.FakePopen(lambda _: { - "stdout": six.StringIO("Author: Foo Bar <email@bar.com>\n") + "stdout": six.BytesIO("Author: Foo Bar " + "<email@bar.com>\n".encode('utf-8')) })) def _fake_read_git_mailmap(*args): @@ -178,8 +179,8 @@ class GitLogsTest(tests.BaseTestCase): def _fake_log_output(self, cmd, mapping): for (k, v) in mapping.items(): if cmd.startswith(k): - return v - return "" + return v.encode('utf-8') + return b"" def test_generate_authors(self): author_old = "Foo Foo <email@foo.com>" @@ -201,7 +202,7 @@ class GitLogsTest(tests.BaseTestCase): lambda path: os.path.abspath(path) in exist_files)) self.useFixture(fixtures.FakePopen(lambda proc_args: { - "stdout": six.StringIO( + "stdout": six.BytesIO( self._fake_log_output(proc_args["args"][2], cmd_map)) })) @@ -242,7 +243,7 @@ class BuildSphinxTest(tests.BaseTestCase): self.distr.command_options["build_sphinx"] = { "source_dir": ["a", "."]} pkg_fixture = fixtures.PythonPackage( - "fake_package", [("fake_module.py", "")]) + "fake_package", [("fake_module.py", b"")]) self.useFixture(pkg_fixture) self.useFixture(DiveDir(pkg_fixture.base)) diff --git a/pbr/tests/test_version.py b/pbr/tests/test_version.py index 2fae9a5..bd72a2d 100644 --- a/pbr/tests/test_version.py +++ b/pbr/tests/test_version.py @@ -15,21 +15,12 @@ # License for the specific language governing permissions and limitations # under the License. -import sys - -from d2to1.extern import six -from oslo.config import cfg - from pbr import tests from pbr import version class DeferredVersionTestCase(tests.BaseTestCase): - def setUp(self): - super(DeferredVersionTestCase, self).setUp() - self.conf = cfg.ConfigOpts() - def test_cached_version(self): class MyVersionInfo(version.VersionInfo): def _get_version_from_pkg_resources(self): @@ -37,39 +28,4 @@ class DeferredVersionTestCase(tests.BaseTestCase): deferred_string = MyVersionInfo("openstack").\ cached_version_string() - self.conf([], project="project", prog="prog", version=deferred_string) - self.assertEquals("5.5.5.5", str(self.conf.version)) - - def test_print_cached_version(self): - class MyVersionInfo(version.VersionInfo): - def _get_version_from_pkg_resources(self): - return "5.5.5.5" - - deferred_string = MyVersionInfo("openstack")\ - .cached_version_string() - self.stubs.Set(sys, 'stderr', six.StringIO()) - self.assertRaises(SystemExit, - self.conf, ['--version'], - project="project", - prog="prog", - version=deferred_string) - self.assertEquals("5.5.5.5", sys.stderr.getvalue().strip()) - - def test_print_cached_version_with_long_string(self): - my_version = "11111222223333344444555556666677777888889999900000" - - class MyVersionInfo(version.VersionInfo): - def _get_version_from_pkg_resources(self): - return my_version - - deferred_string = MyVersionInfo("openstack")\ - .cached_version_string() - - for i in range(50): - self.stubs.Set(sys, 'stderr', six.StringIO()) - self.assertRaises(SystemExit, - self.conf, ['--version'], - project="project", - prog="prog", - version=deferred_string) - self.assertEquals(my_version, sys.stderr.getvalue().strip()) + self.assertEquals("5.5.5.5", deferred_string) diff --git a/requirements.txt b/requirements.txt index 4a3b096..76bfb01 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +jinja2<2.7 d2to1>=0.2.10,<0.3 distribute setuptools_git>=0.4 diff --git a/test-requirements.txt b/test-requirements.txt index 1bbf038..1b82ab0 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -2,8 +2,6 @@ coverage>=3.6 discover fixtures>=0.3.12 flake8 -mox -oslo.config python-subunit sphinx>=1.1.2 testrepository>=0.0.13 |