Drop py2 support from metrics files

python3 is the only supported version of python in depot_tools.

Bug: 1475402
Change-Id: Ic925af3a79311b11a953f1d0d4602754488a9de3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4824480
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
changes/80/4824480/2
Gavin Mak 2 years ago committed by LUCI CQ
parent 1c1cc06a0d
commit 5f955dfff1

@ -13,11 +13,7 @@ import sys
import threading import threading
import time import time
import traceback import traceback
import urllib.request
try:
import urllib2 as urllib
except ImportError: # For Py3 compatibility
import urllib.request as urllib
import detect_host_arch import detect_host_arch
import gclient_utils import gclient_utils
@ -87,9 +83,9 @@ class _Config(object):
# check if we can reach the page. An external developer would get access # check if we can reach the page. An external developer would get access
# denied. # denied.
try: try:
req = urllib.urlopen(metrics_utils.APP_URL + '/should-upload') req = urllib.request.urlopen(metrics_utils.APP_URL + '/should-upload')
self._config['is-googler'] = req.getcode() == 200 self._config['is-googler'] = req.getcode() == 200
except (urllib.URLError, urllib.HTTPError): except (urllib.request.URLError, urllib.request.HTTPError):
self._config['is-googler'] = False self._config['is-googler'] = False
# Make sure the config variables we need are present, and initialize them to # Make sure the config variables we need are present, and initialize them to

@ -10,11 +10,7 @@ import os
import scm import scm
import subprocess2 import subprocess2
import sys import sys
import urllib.parse
try:
import urlparse
except ImportError: # For Py3 compatibility
import urllib.parse as urlparse
# Current version of metrics recording. # Current version of metrics recording.
@ -265,7 +261,7 @@ def extract_http_metrics(request_uri, method, status, response_time):
if method in KNOWN_HTTP_METHODS: if method in KNOWN_HTTP_METHODS:
http_metrics['method'] = method http_metrics['method'] = method
parsed_url = urlparse.urlparse(request_uri) parsed_url = urllib.parse.urlparse(request_uri)
if parsed_url.netloc in KNOWN_HTTP_HOSTS: if parsed_url.netloc in KNOWN_HTTP_HOSTS:
http_metrics['host'] = parsed_url.netloc http_metrics['host'] = parsed_url.netloc
@ -275,7 +271,7 @@ def extract_http_metrics(request_uri, method, status, response_time):
http_metrics['path'] = name http_metrics['path'] = name
break break
parsed_query = urlparse.parse_qs(parsed_url.query) parsed_query = urllib.parse.parse_qs(parsed_url.query)
# Collect o-parameters from the request. # Collect o-parameters from the request.
args = [ args = [

@ -7,11 +7,7 @@ import json
import os import os
import sys import sys
import unittest import unittest
from unittest import mock
if sys.version_info.major == 2:
import mock
else:
from unittest import mock
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, ROOT_DIR) sys.path.insert(0, ROOT_DIR)
@ -35,7 +31,7 @@ class MetricsCollectorTest(unittest.TestCase):
self.collector = metrics.MetricsCollector() self.collector = metrics.MetricsCollector()
# Keep track of the URL requests, file reads/writes and subprocess spawned. # Keep track of the URL requests, file reads/writes and subprocess spawned.
self.urllib = mock.Mock() self.urllib_request = mock.Mock()
self.print_notice = mock.Mock() self.print_notice = mock.Mock()
self.print_version_change = mock.Mock() self.print_version_change = mock.Mock()
self.Popen = mock.Mock() self.Popen = mock.Mock()
@ -45,7 +41,7 @@ class MetricsCollectorTest(unittest.TestCase):
# So that we don't have to update the tests every time we change the # So that we don't have to update the tests every time we change the
# version. # version.
mock.patch('metrics.metrics_utils.CURRENT_VERSION', 0).start() mock.patch('metrics.metrics_utils.CURRENT_VERSION', 0).start()
mock.patch('metrics.urllib', self.urllib).start() mock.patch('metrics.urllib.request', self.urllib_request).start()
mock.patch('metrics.subprocess2.Popen', self.Popen).start() mock.patch('metrics.subprocess2.Popen', self.Popen).start()
mock.patch('metrics.gclient_utils.FileWrite', self.FileWrite).start() mock.patch('metrics.gclient_utils.FileWrite', self.FileWrite).start()
mock.patch('metrics.gclient_utils.FileRead', self.FileRead).start() mock.patch('metrics.gclient_utils.FileRead', self.FileRead).start()
@ -95,7 +91,7 @@ class MetricsCollectorTest(unittest.TestCase):
def test_writes_config_if_not_exists(self): def test_writes_config_if_not_exists(self):
self.FileRead.side_effect = [IOError(2, "No such file or directory")] self.FileRead.side_effect = [IOError(2, "No such file or directory")]
mock_response = mock.Mock() mock_response = mock.Mock()
self.urllib.urlopen.side_effect = [mock_response] self.urllib_request.urlopen.side_effect = [mock_response]
mock_response.getcode.side_effect = [200] mock_response.getcode.side_effect = [200]
self.assertTrue(self.collector.config.is_googler) self.assertTrue(self.collector.config.is_googler)
@ -109,7 +105,7 @@ class MetricsCollectorTest(unittest.TestCase):
def test_writes_config_if_not_exists_non_googler(self): def test_writes_config_if_not_exists_non_googler(self):
self.FileRead.side_effect = [IOError(2, "No such file or directory")] self.FileRead.side_effect = [IOError(2, "No such file or directory")]
mock_response = mock.Mock() mock_response = mock.Mock()
self.urllib.urlopen.side_effect = [mock_response] self.urllib_request.urlopen.side_effect = [mock_response]
mock_response.getcode.side_effect = [403] mock_response.getcode.side_effect = [403]
self.assertFalse(self.collector.config.is_googler) self.assertFalse(self.collector.config.is_googler)
@ -123,7 +119,7 @@ class MetricsCollectorTest(unittest.TestCase):
def test_disables_metrics_if_cant_write_config(self): def test_disables_metrics_if_cant_write_config(self):
self.FileRead.side_effect = [IOError(2, 'No such file or directory')] self.FileRead.side_effect = [IOError(2, 'No such file or directory')]
mock_response = mock.Mock() mock_response = mock.Mock()
self.urllib.urlopen.side_effect = [mock_response] self.urllib_request.urlopen.side_effect = [mock_response]
mock_response.getcode.side_effect = [200] mock_response.getcode.side_effect = [200]
self.FileWrite.side_effect = [IOError(13, 'Permission denied.')] self.FileWrite.side_effect = [IOError(13, 'Permission denied.')]

Loading…
Cancel
Save