Bug 1632429: Improves update-verify compatibility with python 3 r=nthomas

Depends on D77962

Differential Revision: https://phabricator.services.mozilla.com/D77964
This commit is contained in:
Mitchell Hentges 2020-06-08 21:07:07 +00:00
parent fdca51d702
commit 300422099b
6 changed files with 21 additions and 17 deletions

View File

@ -3,8 +3,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import absolute_import
from urlparse import urlunsplit
from six.moves.urllib.parse import urlunsplit
product_ftp_map = {
"fennec": "mobile",

View File

@ -5,6 +5,8 @@
from __future__ import absolute_import
# ftp -> update platform map
import six
update_platform_map = {
"android": ["Android_arm-eabi-gcc3"],
"android-api-11": ["Android_arm-eabi-gcc3"],
@ -58,7 +60,7 @@ def shippedLocales2ftp(platform):
matches = []
try:
[matches.append(
k) for k, v in sl_platform_map.iteritems() if v == platform][0]
k) for k, v in six.iteritems(sl_platform_map) if v == platform][0]
return matches
except IndexError:
return [platform]

View File

@ -7,8 +7,6 @@ from __future__ import absolute_import, print_function
import os
import re
import six
from six import string_types
from .chunking import getChunk
@ -109,13 +107,12 @@ class UpdateVerifyConfig(object):
else:
value = None
if value is not None:
fh.write(six.ensure_binary(key))
fh.write(key.encode("utf-8"))
fh.write(b"=")
if isinstance(value, (list, tuple)):
binary_values = [six.ensure_binary(str(v)) for v in value]
fh.write(b'"%s" ' % b" ".join(binary_values))
fh.write(('"%s" ' % " ".join(value)).encode("utf-8"))
else:
fh.write(b'"%s" ' % six.ensure_binary(str(value)))
fh.write(('"%s" ' % value).encode("utf-8"))
# Rewind one character to avoid having a trailing space
fh.seek(-1, os.SEEK_CUR)
fh.write(b"\n")

View File

@ -5,7 +5,7 @@ import os
import pprint
import re
import sys
from urlparse import urljoin
from six.moves.urllib.parse import urljoin
from mozilla_version.gecko import GeckoVersion
from mozilla_version.version import VersionType
@ -297,7 +297,7 @@ class UpdateVerifyConfigCreator(BaseScript):
)
self.log("Retrieving buildid from info file: %s" % info_file_url, level=DEBUG)
ret = self._retry_download(info_file_url, "WARNING")
buildID = ret.read().split("=")[1].strip()
buildID = ret.read().split(b"=")[1].strip().decode("utf-8")
branch = self._get_branch_url(self.config["branch_prefix"], version)
@ -310,7 +310,7 @@ class UpdateVerifyConfigCreator(BaseScript):
),
)
ret = self._retry_download(shipped_locales_url, "WARNING")
shipped_locales = ret.read().strip()
shipped_locales = ret.read().strip().decode("utf-8")
app_version_url = urljoin(
self.config["hg_server"],
@ -320,7 +320,8 @@ class UpdateVerifyConfigCreator(BaseScript):
self.config["app_name"],
),
)
app_version = self._retry_download(app_version_url, "WARNING").read().strip()
app_version = self._retry_download(app_version_url, "WARNING").read() \
.strip().decode("utf-8")
self.log("Adding {} to update paths".format(version), level=INFO)
self.update_paths[version] = {
@ -393,7 +394,8 @@ class UpdateVerifyConfigCreator(BaseScript):
self.config["app_name"],
),
)
to_shipped_locales = self._retry_download(to_shipped_locales_url, "WARNING").read().strip()
to_shipped_locales = self._retry_download(to_shipped_locales_url, "WARNING") \
.read().strip().decode("utf-8")
to_locales = set(getPlatformLocales(to_shipped_locales, self.config["platform"]))
completes_only_index = 0
@ -474,7 +476,8 @@ class UpdateVerifyConfigCreator(BaseScript):
completes_only_index += 1
def write_config(self):
with open(self.config["output_file"], "w+") as fh:
# Needs to be opened in "bytes" mode because we perform relative seeks on it
with open(self.config["output_file"], "wb+") as fh:
self.update_verify_config.write(fh)

View File

@ -10,6 +10,8 @@ import subprocess
import os
import time
import logging
import six
log = logging.getLogger(__name__)
@ -25,7 +27,7 @@ def log_cmd(cmd, **kwargs):
kwargs['cwd'] = os.getcwd()
log.info("command: START")
log.info("command: %s" % subprocess.list2cmdline(cmd))
for key, value in kwargs.iteritems():
for key, value in six.iteritems(kwargs):
log.info("command: %s: %s", key, str(value))

View File

@ -45,7 +45,8 @@ if __name__ == "__main__":
verifyConfigFile = options.verifyConfig
fd, configFile = mkstemp()
fh = os.fdopen(fd, "w")
# Needs to be opened in "bytes" mode because we perform relative seeks on it
fh = os.fdopen(fd, "wb")
try:
verifyConfig = UpdateVerifyConfig()
verifyConfig.read(path.join(UPDATE_VERIFY_DIR, verifyConfigFile))