handle binary stream from urllib.request.urlopen
Python 3 returns bytes by default with urlopen. Adjust our code to
handle that scenario and decode as necessary.
Bug: https://crbug.com/gerrit/10418
Change-Id: Icf4cd80e7ef92d71a3eefbc6113f1ba11c32eebc
diff --git a/git_config.py b/git_config.py
index ca1282a..cdfeddd 100644
--- a/git_config.py
+++ b/git_config.py
@@ -657,13 +657,14 @@
info = urllib.request.urlopen(info_url, context=context).read()
else:
info = urllib.request.urlopen(info_url).read()
- if info == 'NOT_AVAILABLE' or '<' in info:
+ if info == b'NOT_AVAILABLE' or b'<' in info:
# If `info` contains '<', we assume the server gave us some sort
# of HTML response back, like maybe a login page.
#
# Assume HTTP if SSH is not enabled or ssh_info doesn't look right.
self._review_url = http_url
else:
+ info = info.decode('utf-8')
host, port = info.split()
self._review_url = self._SshReviewUrl(userEmail, host, port)
except urllib.error.HTTPError as e:
diff --git a/repo b/repo
index aa357a2..ce42ad0 100755
--- a/repo
+++ b/repo
@@ -583,7 +583,7 @@
print('Get %s' % url, file=sys.stderr)
while True:
buf = r.read(8192)
- if buf == '':
+ if not buf:
return True
dest.write(buf)
finally: