From 5f955dfff186afaa64d5549fcae95700a247e50a Mon Sep 17 00:00:00 2001 From: Gavin Mak Date: Wed, 30 Aug 2023 15:39:13 +0000 Subject: [PATCH] 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 Reviewed-by: Josip Sokcevic --- metrics.py | 10 +++------- metrics_utils.py | 10 +++------- tests/metrics_test.py | 16 ++++++---------- 3 files changed, 12 insertions(+), 24 deletions(-) diff --git a/metrics.py b/metrics.py index 71bcb6d62..4641bf2d5 100644 --- a/metrics.py +++ b/metrics.py @@ -13,11 +13,7 @@ import sys import threading import time import traceback - -try: - import urllib2 as urllib -except ImportError: # For Py3 compatibility - import urllib.request as urllib +import urllib.request import detect_host_arch import gclient_utils @@ -87,9 +83,9 @@ class _Config(object): # check if we can reach the page. An external developer would get access # denied. 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 - except (urllib.URLError, urllib.HTTPError): + except (urllib.request.URLError, urllib.request.HTTPError): self._config['is-googler'] = False # Make sure the config variables we need are present, and initialize them to diff --git a/metrics_utils.py b/metrics_utils.py index 4af7eb3c4..931cb38e0 100644 --- a/metrics_utils.py +++ b/metrics_utils.py @@ -10,11 +10,7 @@ import os import scm import subprocess2 import sys - -try: - import urlparse -except ImportError: # For Py3 compatibility - import urllib.parse as urlparse +import urllib.parse # 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: 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: http_metrics['host'] = parsed_url.netloc @@ -275,7 +271,7 @@ def extract_http_metrics(request_uri, method, status, response_time): http_metrics['path'] = name break - parsed_query = urlparse.parse_qs(parsed_url.query) + parsed_query = urllib.parse.parse_qs(parsed_url.query) # Collect o-parameters from the request. args = [ diff --git a/tests/metrics_test.py b/tests/metrics_test.py index 359f2ff1c..6b49233ac 100644 --- a/tests/metrics_test.py +++ b/tests/metrics_test.py @@ -7,11 +7,7 @@ import json import os import sys import unittest - -if sys.version_info.major == 2: - import mock -else: - from unittest import mock +from unittest import mock ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, ROOT_DIR) @@ -35,7 +31,7 @@ class MetricsCollectorTest(unittest.TestCase): self.collector = metrics.MetricsCollector() # 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_version_change = 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 # version. 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.gclient_utils.FileWrite', self.FileWrite).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): self.FileRead.side_effect = [IOError(2, "No such file or directory")] 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] 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): self.FileRead.side_effect = [IOError(2, "No such file or directory")] 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] self.assertFalse(self.collector.config.is_googler) @@ -123,7 +119,7 @@ class MetricsCollectorTest(unittest.TestCase): def test_disables_metrics_if_cant_write_config(self): self.FileRead.side_effect = [IOError(2, 'No such file or directory')] 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] self.FileWrite.side_effect = [IOError(13, 'Permission denied.')]