From 0e1881f525f300e693165395518df22e689f8dfe Mon Sep 17 00:00:00 2001
From: Jeremy Bowman <jbowman@edx.org>
Date: Tue, 10 Dec 2019 14:07:27 -0500
Subject: [PATCH] Fixes for celery worker Python 3 bugs (#22479)

---
 .../lib/xmodule/xmodule/video_module/transcripts_utils.py   | 4 +++-
 lms/djangoapps/courseware/views/views.py                    | 6 +++---
 requirements/edx/base.txt                                   | 2 +-
 requirements/edx/development.txt                            | 2 +-
 requirements/edx/github.in                                  | 2 +-
 requirements/edx/testing.txt                                | 2 +-
 6 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/common/lib/xmodule/xmodule/video_module/transcripts_utils.py b/common/lib/xmodule/xmodule/video_module/transcripts_utils.py
index 5009feb497f..89e68c362ff 100644
--- a/common/lib/xmodule/xmodule/video_module/transcripts_utils.py
+++ b/common/lib/xmodule/xmodule/video_module/transcripts_utils.py
@@ -661,9 +661,11 @@ class Transcript(object):
                 try:
                     # With error handling (set to 'ERROR_RAISE'), we will be getting
                     # the exception if something went wrong in parsing the transcript.
+                    if isinstance(content, text_type):
+                        content = content.encode('utf-8')
                     srt_subs = SubRipFile.from_string(
                         # Skip byte order mark(BOM) character
-                        content.encode('utf-8').decode('utf-8-sig'),
+                        content.decode('utf-8-sig'),
                         error_handling=SubRipFile.ERROR_RAISE
                     )
                 except Error as ex:   # Base exception from pysrt
diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py
index e4bdba694e3..e933980f036 100644
--- a/lms/djangoapps/courseware/views/views.py
+++ b/lms/djangoapps/courseware/views/views.py
@@ -294,9 +294,9 @@ def yt_video_metadata(request):
             status_code = res.status_code
             if res.status_code == 200:
                 try:
-                    res = res.json()
-                    if res.get('items', []):
-                        response = res
+                    res_json = res.json()
+                    if res_json.get('items', []):
+                        response = res_json
                     else:
                         logging.warning(u'Unable to find the items in response. Following response '
                                         u'was received: {res}'.format(res=res.text))
diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt
index 35696a3f3f7..be0022cb15a 100644
--- a/requirements/edx/base.txt
+++ b/requirements/edx/base.txt
@@ -251,7 +251,7 @@ webencodings==0.5.1       # via html5lib
 webob==1.8.5              # via xblock
 wrapt==1.10.5
 git+https://github.com/edx-solutions/xblock-drag-and-drop-v2@v2.2.6#egg=xblock-drag-and-drop-v2==2.2.6
-git+https://github.com/open-craft/xblock-poll@add89e14558c30f3c8dc7431e5cd6536fff6d941#egg=xblock-poll==1.5.1
+git+https://github.com/open-craft/xblock-poll@6894592402fd180db864bfce539f17bac6443866#egg=xblock-poll==1.9.0
 xblock-utils==1.2.2
 xblock==1.2.9
 xmlsec==1.3.3             # via python3-saml
diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt
index a21ac12c023..0c9b1305610 100644
--- a/requirements/edx/development.txt
+++ b/requirements/edx/development.txt
@@ -344,7 +344,7 @@ websocket-client==0.56.0
 werkzeug==0.16.0
 wrapt==1.10.5
 git+https://github.com/edx-solutions/xblock-drag-and-drop-v2@v2.2.6#egg=xblock-drag-and-drop-v2==2.2.6
-git+https://github.com/open-craft/xblock-poll@add89e14558c30f3c8dc7431e5cd6536fff6d941#egg=xblock-poll==1.5.1
+git+https://github.com/open-craft/xblock-poll@6894592402fd180db864bfce539f17bac6443866#egg=xblock-poll==1.9.0
 xblock-utils==1.2.2
 xblock==1.2.9
 xmlsec==1.3.3
diff --git a/requirements/edx/github.in b/requirements/edx/github.in
index b4f485fba72..aeaa957d2ec 100644
--- a/requirements/edx/github.in
+++ b/requirements/edx/github.in
@@ -92,5 +92,5 @@ git+https://github.com/edx/xblock-lti-consumer.git@v1.2.1#egg=lti_consumer-xbloc
 # Third Party XBlocks
 
 git+https://github.com/joestump/python-oauth2.git@b94f69b1ad195513547924e380d9265133e995fa#egg=oauth2
-git+https://github.com/open-craft/xblock-poll@add89e14558c30f3c8dc7431e5cd6536fff6d941#egg=xblock-poll==1.5.1
+git+https://github.com/open-craft/xblock-poll@6894592402fd180db864bfce539f17bac6443866#egg=xblock-poll==1.9.0
 git+https://github.com/edx-solutions/xblock-drag-and-drop-v2@v2.2.6#egg=xblock-drag-and-drop-v2==2.2.6
diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt
index 361eb7957bf..5c86a046f5b 100644
--- a/requirements/edx/testing.txt
+++ b/requirements/edx/testing.txt
@@ -326,7 +326,7 @@ websocket-client==0.56.0  # via docker
 werkzeug==0.16.0          # via moto
 wrapt==1.10.5
 git+https://github.com/edx-solutions/xblock-drag-and-drop-v2@v2.2.6#egg=xblock-drag-and-drop-v2==2.2.6
-git+https://github.com/open-craft/xblock-poll@add89e14558c30f3c8dc7431e5cd6536fff6d941#egg=xblock-poll==1.5.1
+git+https://github.com/open-craft/xblock-poll@6894592402fd180db864bfce539f17bac6443866#egg=xblock-poll==1.9.0
 xblock-utils==1.2.2
 xblock==1.2.9
 xmlsec==1.3.3
-- 
GitLab