diff --git a/giftwrap/builders/__init__.py b/giftwrap/builders/__init__.py index 8498d72..5ebd7c2 100644 --- a/giftwrap/builders/__init__.py +++ b/giftwrap/builders/__init__.py @@ -139,7 +139,7 @@ class Builder(object): return @abstractmethod - def _make_dir(self, path, mode=0777): + def _make_dir(self, path, mode=0o777): return @abstractmethod diff --git a/giftwrap/builders/docker_builder.py b/giftwrap/builders/docker_builder.py index c8e0d83..db90711 100644 --- a/giftwrap/builders/docker_builder.py +++ b/giftwrap/builders/docker_builder.py @@ -67,7 +67,7 @@ class DockerBuilder(Builder): return "/tmp/giftwrap" self._commands.append("mktemp -d -t %s.XXXXXXXXXX" % prefix) - def _make_dir(self, path, mode=0777): + def _make_dir(self, path, mode=0o777): self._commands.append("mkdir -p -m %o %s" % (mode, path)) def _prepare_project_build(self, project): @@ -101,13 +101,13 @@ class DockerBuilder(Builder): def _finalize_project_build(self, project): self._commands.append("rm -rf %s" % self._temp_dir) for command in self._commands: - print command + print(command) def _finalize_build(self): template_vars = { 'commands': self._commands } - print self._render_dockerfile(template_vars) + print(self._render_dockerfile(template_vars)) self._build_image() def _cleanup_build(self): diff --git a/giftwrap/builders/package_builder.py b/giftwrap/builders/package_builder.py index af4102d..12d2cf0 100644 --- a/giftwrap/builders/package_builder.py +++ b/giftwrap/builders/package_builder.py @@ -40,7 +40,7 @@ class PackageBuilder(Builder): def _make_temp_dir(self, prefix='giftwrap'): return tempfile.mkdtemp(prefix) - def _make_dir(self, path, mode=0777): + def _make_dir(self, path, mode=0o777): os.makedirs(path, mode) def _prepare_build(self): diff --git a/giftwrap/openstack_git_repo.py b/giftwrap/openstack_git_repo.py index 98129d4..0e7c681 100644 --- a/giftwrap/openstack_git_repo.py +++ b/giftwrap/openstack_git_repo.py @@ -19,7 +19,11 @@ import logging import os import re import time -import urlparse +# Handle python3 urlparse +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse from giftwrap.openstack_commit import OpenstackCommit from git import Repo @@ -54,7 +58,7 @@ class OpenstackGitRepo(object): @property def project(self): if not self._project: - parsed_url = urlparse.urlparse(self.url) + parsed_url = urlparse(self.url) project = os.path.splitext(parsed_url.path)[0] self._project = re.sub(r'^/', '', project) return self._project diff --git a/giftwrap/openstack_project.py b/giftwrap/openstack_project.py index cc5d672..0d21ac9 100644 --- a/giftwrap/openstack_project.py +++ b/giftwrap/openstack_project.py @@ -14,7 +14,11 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations -import urlparse +# Handle python3 urlparse +try: + from urllib.parse import urljoin +except ImportError: + from urlparse import urljoin from jinja2 import Environment @@ -70,7 +74,7 @@ class OpenstackProject(object): key = 'openstack' if self.stackforge: key = 'stackforge' - self._giturl = urlparse.urljoin(DEFAULT_GITURL[key], self.name) + self._giturl = urljoin(DEFAULT_GITURL[key], self.name) return self._giturl @property diff --git a/giftwrap/tests/test_util.py b/giftwrap/tests/test_util.py index 7b926a8..9bc6aae 100644 --- a/giftwrap/tests/test_util.py +++ b/giftwrap/tests/test_util.py @@ -25,7 +25,7 @@ class TestUtil(unittest.TestCase): def test_execute_returns_stdout(self): cmd = 'echo stdout' out = util.execute(cmd) - self.assertEquals('stdout\n', out) + self.assertEquals(b'stdout\n', out) def test_execute_raises_exception_on_error(self): cmd = 'echo stderr >&2 && false' @@ -35,4 +35,4 @@ class TestUtil(unittest.TestCase): def test_nonzero_exit_code(self): cmd = 'echo stdout && false' out = util.execute(cmd, exit=1) - self.assertEquals('stdout\n', out) + self.assertEquals(b'stdout\n', out) diff --git a/requirements.txt b/requirements.txt index f63009f..5f5d936 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ argparse colorama pbr -GitPython==0.3.2.RC1 +GitPython giturlparse.py pyyaml jinja2