diff --git a/git_drover.py b/git_drover.py index a8651815b..8407ec422 100755 --- a/git_drover.py +++ b/git_drover.py @@ -320,7 +320,10 @@ class _Drover(object): stderr = None if self._verbose else _DEV_NULL_FILE try: - return run(['git'] + args, shell=False, cwd=cwd, stderr=stderr) + rv = run(['git'] + args, shell=False, cwd=cwd, stderr=stderr) + if sys.version_info.major == 3: + return rv.decode('utf-8', 'ignore') + return rv except (OSError, subprocess.CalledProcessError) as e: if error_message: raise Error(error_message) diff --git a/tests/git_drover_test.py b/tests/git_drover_test.py index 82ac2d5c1..a49be5000 100755 --- a/tests/git_drover_test.py +++ b/tests/git_drover_test.py @@ -121,13 +121,16 @@ class GitDroverTest(unittest.TestCase): self._fail_on_command == len(self._commands)): self._fail_on_command = None raise subprocess.CalledProcessError(1, args[0]) + rv = '' if args == ['git', 'rev-parse', '--git-dir']: - return os.path.join(self._parent_repo, '.git') + rv = os.path.join(self._parent_repo, '.git') if args == ['git', '-c', 'core.quotePath=false', 'status', '--porcelain']: - return ' D foo\nUU baz\n D bar\n' + rv = ' D foo\nUU baz\n D bar\n' if args == ['git', 'log', '-1', '--format=%ae']: - return 'author@domain.org' - return '' + rv = 'author@domain.org' + if sys.version_info.major == 3: + return bytes(rv, 'utf-8') + return rv def _Popen(self, args, shell=False, cwd=None, stdin=None, stdout=None, stderr=None):