From d5e9c130cd5c879e553701e0fa5e5431839a7997 Mon Sep 17 00:00:00 2001 From: Ayub khan <muhammadayubkhan6@gmail.com> Date: Thu, 11 Jul 2019 16:06:48 +0500 Subject: [PATCH] INCR-419 python3 compatibility --- common/lib/conftest.py | 7 +++++-- common/lib/xmodule/setup.py | 2 ++ common/test/acceptance/pages/studio/container.py | 2 ++ common/test/acceptance/pages/studio/course_page.py | 5 ++++- .../pages/studio/discussion_component_editor.py | 4 +++- .../acceptance/pages/studio/html_component_editor.py | 10 +++++++--- common/test/acceptance/pages/studio/problem_editor.py | 8 ++++++-- common/test/acceptance/pages/studio/settings.py | 5 +++-- common/test/acceptance/pages/studio/signup.py | 2 ++ common/test/acceptance/pages/studio/utils.py | 4 +++- common/test/acceptance/pages/studio/video/video.py | 5 ++++- 11 files changed, 41 insertions(+), 13 deletions(-) diff --git a/common/lib/conftest.py b/common/lib/conftest.py index 180348f6f1d..4758af56676 100644 --- a/common/lib/conftest.py +++ b/common/lib/conftest.py @@ -1,11 +1,14 @@ """Code run by pylint before running any tests.""" # Patch the xml libs before anything else. -from safe_lxml import defuse_xml_libs -defuse_xml_libs() +from __future__ import absolute_import import pytest +from safe_lxml import defuse_xml_libs + +defuse_xml_libs() + @pytest.fixture(autouse=True) def no_webpack_loader(monkeypatch): diff --git a/common/lib/xmodule/setup.py b/common/lib/xmodule/setup.py index 6f9dd6edb97..a45bf043e49 100644 --- a/common/lib/xmodule/setup.py +++ b/common/lib/xmodule/setup.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + from setuptools import find_packages, setup XMODULES = [ diff --git a/common/test/acceptance/pages/studio/container.py b/common/test/acceptance/pages/studio/container.py index 2c1e14839cd..2f68811dfad 100644 --- a/common/test/acceptance/pages/studio/container.py +++ b/common/test/acceptance/pages/studio/container.py @@ -2,6 +2,8 @@ Container page in Studio """ +from __future__ import absolute_import + from bok_choy.page_object import PageObject from bok_choy.promise import EmptyPromise, Promise diff --git a/common/test/acceptance/pages/studio/course_page.py b/common/test/acceptance/pages/studio/course_page.py index e04be870ee8..b4f565e4a65 100644 --- a/common/test/acceptance/pages/studio/course_page.py +++ b/common/test/acceptance/pages/studio/course_page.py @@ -1,9 +1,12 @@ """ Base class for pages specific to a course in Studio. """ +from __future__ import absolute_import + import os from abc import abstractmethod +import six from bok_choy.page_object import PageObject from opaque_keys.edx.locator import CourseLocator @@ -56,4 +59,4 @@ class CoursePage(PageObject, HelpMixin): self.course_info['course_run'], deprecated=(default_store == 'draft') ) - return "/".join([BASE_URL, self.url_path, unicode(course_key)]) + return "/".join([BASE_URL, self.url_path, six.text_type(course_key)]) diff --git a/common/test/acceptance/pages/studio/discussion_component_editor.py b/common/test/acceptance/pages/studio/discussion_component_editor.py index e5aa11e8268..c4c2573657d 100644 --- a/common/test/acceptance/pages/studio/discussion_component_editor.py +++ b/common/test/acceptance/pages/studio/discussion_component_editor.py @@ -1,8 +1,10 @@ """ Discussion component editor in studio """ -from common.test.acceptance.pages.studio.xblock_editor import XBlockEditorView +from __future__ import absolute_import + from common.test.acceptance.pages.common.utils import click_css +from common.test.acceptance.pages.studio.xblock_editor import XBlockEditorView class DiscussionComponentEditor(XBlockEditorView): diff --git a/common/test/acceptance/pages/studio/html_component_editor.py b/common/test/acceptance/pages/studio/html_component_editor.py index 477c3ce8d60..94e4234111c 100644 --- a/common/test/acceptance/pages/studio/html_component_editor.py +++ b/common/test/acceptance/pages/studio/html_component_editor.py @@ -1,9 +1,13 @@ """ HTML component editor in studio """ -from common.test.acceptance.pages.studio.utils import type_in_codemirror, get_codemirror_value -from common.test.acceptance.pages.studio.xblock_editor import XBlockEditorView +from __future__ import absolute_import + +from six.moves import zip + from common.test.acceptance.pages.common.utils import click_css +from common.test.acceptance.pages.studio.utils import get_codemirror_value, type_in_codemirror +from common.test.acceptance.pages.studio.xblock_editor import XBlockEditorView class HtmlXBlockEditorView(XBlockEditorView): @@ -68,7 +72,7 @@ class HtmlXBlockEditorView(XBlockEditorView): font = font.replace('font-family: ', '').replace(';', '') font_families[index] = font.split(',') font_families[index] = [x.lstrip() for x in font_families[index]] - font_dict = dict(zip(font_labels, font_families)) + font_dict = dict(list(zip(font_labels, font_families))) return font_dict def set_content_and_save(self, content, raw=False): diff --git a/common/test/acceptance/pages/studio/problem_editor.py b/common/test/acceptance/pages/studio/problem_editor.py index d317902a292..c9e4634b97b 100644 --- a/common/test/acceptance/pages/studio/problem_editor.py +++ b/common/test/acceptance/pages/studio/problem_editor.py @@ -1,9 +1,13 @@ """ Studio Problem Editor """ -from common.test.acceptance.pages.studio.xblock_editor import XBlockEditorView -from common.test.acceptance.pages.common.utils import click_css +from __future__ import absolute_import + from selenium.webdriver.support.ui import Select +from six.moves import range + +from common.test.acceptance.pages.common.utils import click_css +from common.test.acceptance.pages.studio.xblock_editor import XBlockEditorView class ProblemXBlockEditorView(XBlockEditorView): diff --git a/common/test/acceptance/pages/studio/settings.py b/common/test/acceptance/pages/studio/settings.py index 468924d0f6f..f94596d97fe 100644 --- a/common/test/acceptance/pages/studio/settings.py +++ b/common/test/acceptance/pages/studio/settings.py @@ -2,10 +2,11 @@ """ Course Schedule and Details Settings page. """ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import os +import six from bok_choy.javascript import requirejs from bok_choy.promise import EmptyPromise @@ -77,7 +78,7 @@ class SettingsPage(CoursePage): Set the values of the elements to those specified in the element_values dict. """ - for css, value in element_values.iteritems(): + for css, value in six.iteritems(element_values): element = self.get_element(css) element.clear() element.send_keys(value) diff --git a/common/test/acceptance/pages/studio/signup.py b/common/test/acceptance/pages/studio/signup.py index 26975a8899b..040460081a9 100644 --- a/common/test/acceptance/pages/studio/signup.py +++ b/common/test/acceptance/pages/studio/signup.py @@ -1,6 +1,8 @@ """ Signup page for studio """ +from __future__ import absolute_import + from bok_choy.page_object import PageObject from common.test.acceptance.pages.common.utils import click_css diff --git a/common/test/acceptance/pages/studio/utils.py b/common/test/acceptance/pages/studio/utils.py index 9ad379a2325..82f7b5b155e 100644 --- a/common/test/acceptance/pages/studio/utils.py +++ b/common/test/acceptance/pages/studio/utils.py @@ -1,6 +1,8 @@ """ Utility methods useful for Studio page tests. """ +from __future__ import absolute_import + from bok_choy.javascript import js_defined from bok_choy.promise import EmptyPromise from selenium.webdriver.common.action_chains import ActionChains @@ -230,7 +232,7 @@ def verify_ordering(test_class, page, expected_orderings): blocks_checked = set() for expected_ordering in expected_orderings: for xblock in xblocks: - parent = expected_ordering.keys()[0] + parent = list(expected_ordering.keys())[0] if xblock.name == parent: blocks_checked.add(parent) children = xblock.children diff --git a/common/test/acceptance/pages/studio/video/video.py b/common/test/acceptance/pages/studio/video/video.py index ac6843ac5b3..ecda1a35563 100644 --- a/common/test/acceptance/pages/studio/video/video.py +++ b/common/test/acceptance/pages/studio/video/video.py @@ -1,6 +1,8 @@ """ CMS Video """ +from __future__ import absolute_import + import os import time @@ -9,6 +11,7 @@ from bok_choy.javascript import js_defined, wait_for_js from bok_choy.promise import EmptyPromise, Promise from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys +from six.moves import range from common.test.acceptance.pages.common.utils import sync_on_notification from common.test.acceptance.pages.lms.video.video import VideoPage @@ -627,7 +630,7 @@ class VideoComponentPage(VideoPage): if field_numbers: index_list = [number - 1 for number in field_numbers] else: - index_list = range(3) # maximum three fields + index_list = list(range(3)) # maximum three fields statuses = {} for index in index_list: -- GitLab