From ac5f54340285e963c868516353724e835edf3cde Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Wed, 24 Feb 2021 17:52:05 +0500 Subject: [PATCH 1/2] BOM-2376 Run Pyupgrade on terrain --- common/djangoapps/terrain/stubs/edxnotes.py | 9 +++--- common/djangoapps/terrain/stubs/http.py | 20 ++++++------- common/djangoapps/terrain/stubs/lti.py | 30 +++++++++---------- common/djangoapps/terrain/stubs/start.py | 8 ++--- .../terrain/stubs/tests/test_edxnotes.py | 5 ++-- .../terrain/stubs/tests/test_http.py | 19 ++++++------ .../terrain/stubs/tests/test_lti_stub.py | 14 ++++----- .../terrain/stubs/tests/test_video.py | 6 ++-- .../terrain/stubs/tests/test_xqueue_stub.py | 8 ++--- .../terrain/stubs/tests/test_youtube_stub.py | 4 +-- .../djangoapps/terrain/stubs/video_source.py | 2 +- common/djangoapps/terrain/stubs/xqueue.py | 17 +++++------ common/djangoapps/terrain/stubs/youtube.py | 6 ++-- 13 files changed, 72 insertions(+), 76 deletions(-) diff --git a/common/djangoapps/terrain/stubs/edxnotes.py b/common/djangoapps/terrain/stubs/edxnotes.py index 458dea52ad..3e40a26c5d 100644 --- a/common/djangoapps/terrain/stubs/edxnotes.py +++ b/common/djangoapps/terrain/stubs/edxnotes.py @@ -10,8 +10,7 @@ from datetime import datetime from math import ceil from uuid import uuid4 -import six -from six.moves.urllib.parse import urlencode +from urllib.parse import urlencode from .http import StubHttpRequestHandler, StubHttpService @@ -62,7 +61,7 @@ class StubEdxNotesServiceHandler(StubHttpRequestHandler): if method in self.URL_HANDLERS: handlers_list = self.URL_HANDLERS[method] else: - self.log_error("Unrecognized method '{method}'".format(method=method)) + self.log_error(f"Unrecognized method '{method}'") return # Check the path (without querystring params) against our list of handlers @@ -300,7 +299,7 @@ class StubEdxNotesService(StubHttpService): HANDLER_CLASS = StubEdxNotesServiceHandler def __init__(self, *args, **kwargs): - super(StubEdxNotesService, self).__init__(*args, **kwargs) # lint-amnesty, pylint: disable=super-with-arguments + super().__init__(*args, **kwargs) self.notes = list() def get_all_notes(self): @@ -393,4 +392,4 @@ class StubEdxNotesService(StubHttpService): """ Search the `query(str)` text in the provided `data(list)`. """ - return [note for note in data if six.text_type(query).strip() in note.get("text", "").split()] + return [note for note in data if str(query).strip() in note.get("text", "").split()] diff --git a/common/djangoapps/terrain/stubs/http.py b/common/djangoapps/terrain/stubs/http.py index 978f5e2726..96373d542b 100644 --- a/common/djangoapps/terrain/stubs/http.py +++ b/common/djangoapps/terrain/stubs/http.py @@ -44,7 +44,7 @@ def require_params(method, *required_keys): elif method == "POST": params = self.post_dict else: - raise ValueError("Unsupported method '{method}'".format(method=method)) + raise ValueError(f"Unsupported method '{method}'") # Check for required values missing = [] @@ -63,7 +63,7 @@ def require_params(method, *required_keys): return decorator -class StubHttpRequestHandler(BaseHTTPRequestHandler, object): +class StubHttpRequestHandler(BaseHTTPRequestHandler): """ Handler for the stub HTTP service. """ @@ -157,15 +157,15 @@ class StubHttpRequestHandler(BaseHTTPRequestHandler, object): if self.path == "/set_config" or self.path == "/set_config/": if len(self.post_dict) > 0: - for key, value in six.iteritems(self.post_dict): + for key, value in self.post_dict.items(): - self.log_message(u"Set config '{0}' to '{1}'".format(key, value)) + self.log_message(f"Set config '{key}' to '{value}'") try: value = json.loads(value) except ValueError: - self.log_message(u"Could not parse JSON: {0}".format(value)) + self.log_message(f"Could not parse JSON: {value}") self.send_response(400) else: @@ -185,7 +185,7 @@ class StubHttpRequestHandler(BaseHTTPRequestHandler, object): `content` (str) and `headers` (dict). """ self.log_message( - "Sent HTTP response: {0} with content '{1}' and headers {2}".format(status_code, content, headers) + f"Sent HTTP response: {status_code} with content '{content}' and headers {headers}" ) if headers is None: @@ -202,7 +202,7 @@ class StubHttpRequestHandler(BaseHTTPRequestHandler, object): self.end_headers() if content is not None: - if not six.PY2 and isinstance(content, six.text_type): + if not six.PY2 and isinstance(content, str): content = content.encode('utf-8') self.wfile.write(content) @@ -221,7 +221,7 @@ class StubHttpRequestHandler(BaseHTTPRequestHandler, object): """ if not args: format_str = six.moves.urllib.parse.unquote(format_str) - return u"{0} - - [{1}] {2}\n".format( + return "{} - - [{}] {}\n".format( self.client_address[0], self.log_date_time_string(), format_str % args @@ -234,7 +234,7 @@ class StubHttpRequestHandler(BaseHTTPRequestHandler, object): self.send_response(200) -class StubHttpService(ThreadingMixIn, HTTPServer, object): +class StubHttpService(ThreadingMixIn, HTTPServer): """ Stub HTTP service implementation. """ @@ -260,7 +260,7 @@ class StubHttpService(ThreadingMixIn, HTTPServer, object): server_thread.start() # Log the port we're using to help identify port conflict errors - LOGGER.debug('Starting service on port {0}'.format(self.port)) + LOGGER.debug(f'Starting service on port {self.port}') def shutdown(self): """ diff --git a/common/djangoapps/terrain/stubs/lti.py b/common/djangoapps/terrain/stubs/lti.py index 932220fc25..c14e310adc 100644 --- a/common/djangoapps/terrain/stubs/lti.py +++ b/common/djangoapps/terrain/stubs/lti.py @@ -15,9 +15,9 @@ import hashlib import logging import os import textwrap +from unittest import mock from uuid import uuid4 -import mock import oauthlib.oauth1 import requests import six @@ -245,15 +245,15 @@ class StubLtiHandler(StubHttpRequestHandler): lti_endpoint = self.server.config.get('lti_endpoint', self.DEFAULT_LTI_ENDPOINT) return lti_endpoint in self.path - def _oauth_sign(self, url, body, content_type=u'application/x-www-form-urlencoded', method=u'POST'): + def _oauth_sign(self, url, body, content_type='application/x-www-form-urlencoded', method='POST'): """ Signs request and returns signed Authorization header. """ client_key = self.server.config.get('client_key', self.DEFAULT_CLIENT_KEY) client_secret = self.server.config.get('client_secret', self.DEFAULT_CLIENT_SECRET) client = oauthlib.oauth1.Client( - client_key=six.text_type(client_key), - client_secret=six.text_type(client_secret) + client_key=str(client_key), + client_secret=str(client_secret) ) headers = { # This is needed for body encoding: @@ -265,17 +265,17 @@ class StubLtiHandler(StubHttpRequestHandler): sha1.update(body.encode('utf-8')) oauth_body_hash = base64.b64encode(sha1.digest()).decode('utf-8') mock_request = mock.Mock( - uri=six.text_type(six.moves.urllib.parse.unquote(url)), + uri=str(six.moves.urllib.parse.unquote(url)), headers=headers, - body=u"", - decoded_body=u"", - http_method=six.text_type(method), + body="", + decoded_body="", + http_method=str(method), ) params = client.get_oauth_params(mock_request) mock_request.oauth_params = params - mock_request.oauth_params.append((u'oauth_body_hash', oauth_body_hash)) + mock_request.oauth_params.append(('oauth_body_hash', oauth_body_hash)) sig = client.get_oauth_signature(mock_request) - mock_request.oauth_params.append((u'oauth_signature', sig)) + mock_request.oauth_params.append(('oauth_signature', sig)) new_headers = parameters.prepare_headers(mock_request.oauth_params, headers, realm=None) return new_headers['Authorization'] @@ -295,17 +295,17 @@ class StubLtiHandler(StubHttpRequestHandler): Returns `True` if signatures are correct, otherwise `False`. """ - client_secret = six.text_type(self.server.config.get('client_secret', self.DEFAULT_CLIENT_SECRET)) + client_secret = str(self.server.config.get('client_secret', self.DEFAULT_CLIENT_SECRET)) host = os.environ.get('BOK_CHOY_HOSTNAME', '127.0.0.1') port = self.server.server_address[1] lti_base = self.DEFAULT_LTI_ADDRESS.format(host=host, port=port) lti_endpoint = self.server.config.get('lti_endpoint', self.DEFAULT_LTI_ENDPOINT) url = lti_base + lti_endpoint request = mock.Mock() - request.params = [(six.text_type(k), six.text_type(v)) for k, v in params.items()] - request.uri = six.text_type(url) - request.http_method = u'POST' - request.signature = six.text_type(client_signature) + request.params = [(str(k), str(v)) for k, v in params.items()] + request.uri = str(url) + request.http_method = 'POST' + request.signature = str(client_signature) return signature.verify_hmac_sha1(request, client_secret) diff --git a/common/djangoapps/terrain/stubs/start.py b/common/djangoapps/terrain/stubs/start.py index c9ea349e46..1da87da935 100644 --- a/common/djangoapps/terrain/stubs/start.py +++ b/common/djangoapps/terrain/stubs/start.py @@ -47,7 +47,7 @@ def get_args(): config_dict = _parse_config_args(sys.argv[3:]) if service_name not in SERVICES: - print("Unrecognized service '{0}'. Valid choices are: {1}".format( + print("Unrecognized service '{}'. Valid choices are: {}".format( service_name, ", ".join(list(SERVICES.keys())))) sys.exit(1) @@ -57,7 +57,7 @@ def get_args(): raise ValueError except ValueError: - print("Port '{0}' must be a positive integer".format(port_num)) + print(f"Port '{port_num}' must be a positive integer") sys.exit(1) return service_name, port_num, config_dict @@ -79,7 +79,7 @@ def _parse_config_args(args): config_dict[components[0]] = "=".join(components[1:]) except: # lint-amnesty, pylint: disable=bare-except - print("Warning: could not interpret config value '{0}'".format(config_str)) + print(f"Warning: could not interpret config value '{config_str}'") return config_dict @@ -89,7 +89,7 @@ def main(): Start a server; shut down on keyboard interrupt signal. """ service_name, port_num, config_dict = get_args() - print("Starting stub service '{0}' on port {1}...".format(service_name, port_num)) + print(f"Starting stub service '{service_name}' on port {port_num}...") server = SERVICES[service_name](port_num=port_num) server.config.update(config_dict) diff --git a/common/djangoapps/terrain/stubs/tests/test_edxnotes.py b/common/djangoapps/terrain/stubs/tests/test_edxnotes.py index aa27ddac83..5d22d6c551 100644 --- a/common/djangoapps/terrain/stubs/tests/test_edxnotes.py +++ b/common/djangoapps/terrain/stubs/tests/test_edxnotes.py @@ -10,7 +10,6 @@ from uuid import uuid4 import ddt import requests import six -from six.moves import range from ..edxnotes import StubEdxNotesService @@ -24,7 +23,7 @@ class StubEdxNotesServiceTest(unittest.TestCase): """ Start the stub server. """ - super(StubEdxNotesServiceTest, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments + super().setUp() self.server = StubEdxNotesService() dummy_notes = self._get_dummy_notes(count=5) self.server.add_notes(dummy_notes) @@ -192,7 +191,7 @@ class StubEdxNotesServiceTest(unittest.TestCase): updated_note = self._get_notes()[0] assert 'new test text' == updated_note['text'] assert note['id'] == updated_note['id'] - six.assertCountEqual(self, note, updated_note) + self.assertCountEqual(note, updated_note) response = requests.get(self._get_url("api/v1/annotations/does_not_exist")) assert response.status_code == 404 diff --git a/common/djangoapps/terrain/stubs/tests/test_http.py b/common/djangoapps/terrain/stubs/tests/test_http.py index 906cb5db19..f9f5125c1f 100644 --- a/common/djangoapps/terrain/stubs/tests/test_http.py +++ b/common/djangoapps/terrain/stubs/tests/test_http.py @@ -7,7 +7,6 @@ import json import unittest import requests -import six from common.djangoapps.terrain.stubs.http import StubHttpRequestHandler, StubHttpService, require_params @@ -15,10 +14,10 @@ from common.djangoapps.terrain.stubs.http import StubHttpRequestHandler, StubHtt class StubHttpServiceTest(unittest.TestCase): # lint-amnesty, pylint: disable=missing-class-docstring def setUp(self): - super(StubHttpServiceTest, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments + super().setUp() self.server = StubHttpService() self.addCleanup(self.server.shutdown) - self.url = "http://127.0.0.1:{0}/set_config".format(self.server.port) + self.url = f"http://127.0.0.1:{self.server.port}/set_config" def test_configure(self): """ @@ -34,12 +33,12 @@ class StubHttpServiceTest(unittest.TestCase): # lint-amnesty, pylint: disable=m 'test_key': 'test_val', }, 'test_empty_dict': {}, - 'test_unicode': u'\u2603 the snowman', + 'test_unicode': '\u2603 the snowman', 'test_none': None, 'test_boolean': False } - for key, val in six.iteritems(params): + for key, val in params.items(): # JSON-encode each parameter post_params = {key: json.dumps(val)} @@ -47,7 +46,7 @@ class StubHttpServiceTest(unittest.TestCase): # lint-amnesty, pylint: disable=m assert response.status_code == 200 # Check that the expected values were set in the configuration - for key, val in six.iteritems(params): + for key, val in params.items(): assert self.server.config.get(key) == val def test_bad_json(self): @@ -60,12 +59,12 @@ class StubHttpServiceTest(unittest.TestCase): # lint-amnesty, pylint: disable=m def test_unicode_non_json(self): # Send unicode without json-encoding it - response = requests.put(self.url, data={'test_unicode': u'\u2603 the snowman'}) + response = requests.put(self.url, data={'test_unicode': '\u2603 the snowman'}) assert response.status_code == 400 def test_unknown_path(self): response = requests.put( - "http://127.0.0.1:{0}/invalid_url".format(self.server.port), + f"http://127.0.0.1:{self.server.port}/invalid_url", data="{}" ) assert response.status_code == 404 @@ -91,10 +90,10 @@ class RequireParamTest(unittest.TestCase): """ def setUp(self): - super(RequireParamTest, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments + super().setUp() self.server = RequireHttpService() self.addCleanup(self.server.shutdown) - self.url = "http://127.0.0.1:{port}".format(port=self.server.port) + self.url = f"http://127.0.0.1:{self.server.port}" def test_require_get_param(self): diff --git a/common/djangoapps/terrain/stubs/tests/test_lti_stub.py b/common/djangoapps/terrain/stubs/tests/test_lti_stub.py index 14bcb8bc94..0cb6b50468 100644 --- a/common/djangoapps/terrain/stubs/tests/test_lti_stub.py +++ b/common/djangoapps/terrain/stubs/tests/test_lti_stub.py @@ -4,10 +4,10 @@ Unit tests for stub LTI implementation. import unittest +from unittest.mock import Mock, patch import requests -import six -from mock import Mock, patch +from urllib.request import urlopen from common.djangoapps.terrain.stubs.lti import StubLtiService @@ -20,9 +20,9 @@ class StubLtiServiceTest(unittest.TestCase): Used for lettuce BDD tests in lms/courseware/features/lti.feature """ def setUp(self): - super(StubLtiServiceTest, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments + super().setUp() self.server = StubLtiService() - self.uri = 'http://127.0.0.1:{}/'.format(self.server.port) + self.uri = f'http://127.0.0.1:{self.server.port}/' self.launch_uri = self.uri + 'correct_lti_endpoint' self.addCleanup(self.server.shutdown) self.payload = { @@ -74,7 +74,7 @@ class StubLtiServiceTest(unittest.TestCase): grade_uri = self.uri + 'grade' with patch('common.djangoapps.terrain.stubs.lti.requests.post') as mocked_post: mocked_post.return_value = Mock(content='Test response', status_code=200) - response = six.moves.urllib.request.urlopen(grade_uri, data=b'') + response = urlopen(grade_uri, data=b'') assert b'Test response' in response.read() @patch('common.djangoapps.terrain.stubs.lti.signature.verify_hmac_sha1', return_value=True) @@ -84,7 +84,7 @@ class StubLtiServiceTest(unittest.TestCase): grade_uri = self.uri + 'lti2_outcome' with patch('common.djangoapps.terrain.stubs.lti.requests.put') as mocked_put: mocked_put.return_value = Mock(status_code=200) - response = six.moves.urllib.request.urlopen(grade_uri, data=b'') + response = urlopen(grade_uri, data=b'') assert b'LTI consumer (edX) responded with HTTP 200' in response.read() @patch('common.djangoapps.terrain.stubs.lti.signature.verify_hmac_sha1', return_value=True) @@ -94,5 +94,5 @@ class StubLtiServiceTest(unittest.TestCase): grade_uri = self.uri + 'lti2_delete' with patch('common.djangoapps.terrain.stubs.lti.requests.put') as mocked_put: mocked_put.return_value = Mock(status_code=200) - response = six.moves.urllib.request.urlopen(grade_uri, data=b'') + response = urlopen(grade_uri, data=b'') assert b'LTI consumer (edX) responded with HTTP 200' in response.read() diff --git a/common/djangoapps/terrain/stubs/tests/test_video.py b/common/djangoapps/terrain/stubs/tests/test_video.py index 685aa7f0b0..66332bdf0e 100644 --- a/common/djangoapps/terrain/stubs/tests/test_video.py +++ b/common/djangoapps/terrain/stubs/tests/test_video.py @@ -33,16 +33,16 @@ class StubVideoServiceTest(unittest.TestCase): """ Start the stub server. """ - super(StubVideoServiceTest, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments + super().setUp() self.server = VideoSourceHttpService() - self.server.config['root_dir'] = '{}/data/video'.format(settings.TEST_ROOT) + self.server.config['root_dir'] = f'{settings.TEST_ROOT}/data/video' self.addCleanup(self.server.shutdown) def test_get_hls_manifest(self): """ Verify that correct hls manifest is received. """ - response = requests.get("http://127.0.0.1:{port}/hls/history.m3u8".format(port=self.server.port)) + response = requests.get(f"http://127.0.0.1:{self.server.port}/hls/history.m3u8") assert response.ok assert response.text == HLS_MANIFEST_TEXT.lstrip() assert response.headers['Access-Control-Allow-Origin'] == '*' diff --git a/common/djangoapps/terrain/stubs/tests/test_xqueue_stub.py b/common/djangoapps/terrain/stubs/tests/test_xqueue_stub.py index 28e2cbe306..5a4576817e 100644 --- a/common/djangoapps/terrain/stubs/tests/test_xqueue_stub.py +++ b/common/djangoapps/terrain/stubs/tests/test_xqueue_stub.py @@ -6,14 +6,14 @@ Unit tests for stub XQueue implementation. import ast import json import unittest +from unittest import mock -import mock import requests from ..xqueue import StubXQueueService -class FakeTimer(object): +class FakeTimer: """ Fake timer implementation that executes immediately. """ @@ -27,9 +27,9 @@ class FakeTimer(object): class StubXQueueServiceTest(unittest.TestCase): # lint-amnesty, pylint: disable=missing-class-docstring def setUp(self): - super(StubXQueueServiceTest, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments + super().setUp() self.server = StubXQueueService() - self.url = "http://127.0.0.1:{0}/xqueue/submit".format(self.server.port) + self.url = f"http://127.0.0.1:{self.server.port}/xqueue/submit" self.addCleanup(self.server.shutdown) # Patch the timer async calls diff --git a/common/djangoapps/terrain/stubs/tests/test_youtube_stub.py b/common/djangoapps/terrain/stubs/tests/test_youtube_stub.py index 146525ff2b..8d0a1fadfa 100644 --- a/common/djangoapps/terrain/stubs/tests/test_youtube_stub.py +++ b/common/djangoapps/terrain/stubs/tests/test_youtube_stub.py @@ -13,9 +13,9 @@ from ..youtube import StubYouTubeService class StubYouTubeServiceTest(unittest.TestCase): # lint-amnesty, pylint: disable=missing-class-docstring def setUp(self): - super(StubYouTubeServiceTest, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments + super().setUp() self.server = StubYouTubeService() - self.url = "http://127.0.0.1:{0}/".format(self.server.port) + self.url = f"http://127.0.0.1:{self.server.port}/" self.server.config['time_to_response'] = 0.0 self.addCleanup(self.server.shutdown) diff --git a/common/djangoapps/terrain/stubs/video_source.py b/common/djangoapps/terrain/stubs/video_source.py index ef253da826..ffff090a62 100644 --- a/common/djangoapps/terrain/stubs/video_source.py +++ b/common/djangoapps/terrain/stubs/video_source.py @@ -25,7 +25,7 @@ class VideoSourceRequestHandler(SimpleHTTPRequestHandler): becomes /gizmo.mp4 """ root_dir = self.server.config.get('root_dir') - path = '{}{}'.format(root_dir, path) + path = f'{root_dir}{path}' return path.split('?')[0] def end_headers(self): diff --git a/common/djangoapps/terrain/stubs/xqueue.py b/common/djangoapps/terrain/stubs/xqueue.py index d24965b3bd..bb6b7ac69e 100644 --- a/common/djangoapps/terrain/stubs/xqueue.py +++ b/common/djangoapps/terrain/stubs/xqueue.py @@ -14,7 +14,6 @@ import copy import json from threading import Timer -import six from requests import post from openedx.core.djangolib.markup import HTML @@ -38,7 +37,7 @@ class StubXQueueHandler(StubHttpRequestHandler): Sends back an immediate success/failure response. It then POSTS back to the client with grading results. """ - msg = "XQueue received POST request {0} to path {1}".format(self.post_dict, self.path) + msg = f"XQueue received POST request {self.post_dict} to path {self.path}" self.log_message(msg) # Respond only to grading requests @@ -100,7 +99,7 @@ class StubXQueueHandler(StubHttpRequestHandler): self.send_response( 200, content=response_str, headers={'Content-type': 'text/plain'} ) - self.log_message("XQueue: sent response {0}".format(response_str)) + self.log_message(f"XQueue: sent response {response_str}") else: self.send_response(500) @@ -138,7 +137,7 @@ class StubXQueueHandler(StubHttpRequestHandler): # Multiple matches, so abort and log an error else: self.log_error( - "Multiple response patterns matched '{0}'".format(xqueue_body_json), + f"Multiple response patterns matched '{xqueue_body_json}'", ) return @@ -159,7 +158,7 @@ class StubXQueueHandler(StubHttpRequestHandler): } post(postback_url, data=data) - self.log_message("XQueue: sent grading response {0} to {1}".format(data, postback_url)) + self.log_message(f"XQueue: sent grading response {data} to {postback_url}") def _register_submission(self, xqueue_body_json): """ @@ -174,7 +173,7 @@ class StubXQueueHandler(StubHttpRequestHandler): xqueue_body = json.loads(xqueue_body_json) except ValueError: self.log_error( - "Could not decode XQueue body as JSON: '{0}'".format(xqueue_body_json)) + f"Could not decode XQueue body as JSON: '{xqueue_body_json}'") else: @@ -187,12 +186,12 @@ class StubXQueueHandler(StubHttpRequestHandler): response = post(url, data={'grader_payload': grader_payload}) if not response.ok: self.log_error( - "Could register submission at URL '{0}'. Status was {1}".format( + "Could register submission at URL '{}'. Status was {}".format( url, response.status_code)) else: self.log_message( - "XQueue body is missing 'grader_payload' key: '{0}'".format(xqueue_body) + f"XQueue body is missing 'grader_payload' key: '{xqueue_body}'" ) def _is_grade_request(self): @@ -222,6 +221,6 @@ class StubXQueueService(StubHttpService): """ return list({ key: value - for key, value in six.iteritems(self.config) + for key, value in self.config.items() if key not in self.NON_QUEUE_CONFIG_KEYS }.items()) diff --git a/common/djangoapps/terrain/stubs/youtube.py b/common/djangoapps/terrain/stubs/youtube.py index 64b79c216b..7419398c15 100644 --- a/common/djangoapps/terrain/stubs/youtube.py +++ b/common/djangoapps/terrain/stubs/youtube.py @@ -52,7 +52,7 @@ class StubYouTubeHandler(StubHttpRequestHandler): Handle a GET request from the client and sends response back. """ self.log_message( - "Youtube provider received GET request to path {}".format(self.path) + f"Youtube provider received GET request to path {self.path}" ) if 'get_config' in self.path: @@ -137,7 +137,7 @@ class StubYouTubeHandler(StubHttpRequestHandler): response = "{cb}({data})".format(cb=callback, data=json.dumps(data)).encode('utf-8') self.send_response(200, content=response, headers={'Content-type': 'text/html'}) - self.log_message("Youtube: sent response {}".format(message)) + self.log_message(f"Youtube: sent response {message}") def _send_private_video_response(self, message): """ @@ -161,7 +161,7 @@ class StubYouTubeHandler(StubHttpRequestHandler): response = "{cb}({data})".format(cb=callback, data=json.dumps(data)).encode('utf-8') self.send_response(200, content=response, headers={'Content-type': 'text/html'}) - self.log_message("Youtube: sent response {}".format(message)) + self.log_message(f"Youtube: sent response {message}") class StubYouTubeService(StubHttpService): From 51c9cc274a5594d2db119eadaf6b37768ec219e3 Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Thu, 25 Feb 2021 11:32:47 +0500 Subject: [PATCH 2/2] BOM-2376 Run Pyupgrade on terrain --- common/djangoapps/terrain/stubs/tests/test_lti_stub.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/djangoapps/terrain/stubs/tests/test_lti_stub.py b/common/djangoapps/terrain/stubs/tests/test_lti_stub.py index 0cb6b50468..bf8e4d8c6a 100644 --- a/common/djangoapps/terrain/stubs/tests/test_lti_stub.py +++ b/common/djangoapps/terrain/stubs/tests/test_lti_stub.py @@ -7,7 +7,7 @@ import unittest from unittest.mock import Mock, patch import requests -from urllib.request import urlopen +from urllib.request import urlopen # pylint: disable=wrong-import-order from common.djangoapps.terrain.stubs.lti import StubLtiService