From 2d766e7b5dc921d30a31eb3f85b4470129233465 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 7 Oct 2019 16:29:13 -0400 Subject: [PATCH] Skip tests that can't succeed in Python3 + Django 1.11 There is a bug in the underlying management/base code that tries to make all manageent command output be unicode. This management command outputs the binary tar file data and so breaks in python3. In python2 the code is happy to pass bytes back and forth and in later versions of django this is fixed. Howevere it's not possible to get this test to pass in Python3 and django 1.11 --- .../contentstore/management/commands/export_olx.py | 2 +- .../management/commands/tests/test_export_olx.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/management/commands/export_olx.py b/cms/djangoapps/contentstore/management/commands/export_olx.py index bb11b7ad7b..b1324b827c 100644 --- a/cms/djangoapps/contentstore/management/commands/export_olx.py +++ b/cms/djangoapps/contentstore/management/commands/export_olx.py @@ -67,7 +67,7 @@ class Command(BaseCommand): def _get_results(self, filename): """Load results from file""" - with open(filename) as f: + with open(filename, 'rb') as f: results = f.read() os.remove(filename) return results diff --git a/cms/djangoapps/contentstore/management/commands/tests/test_export_olx.py b/cms/djangoapps/contentstore/management/commands/tests/test_export_olx.py index 021f9fcb9a..b950f89ce0 100644 --- a/cms/djangoapps/contentstore/management/commands/tests/test_export_olx.py +++ b/cms/djangoapps/contentstore/management/commands/tests/test_export_olx.py @@ -89,6 +89,13 @@ class TestCourseExportOlx(ModuleStoreTestCase): with tarfile.open(filename) as tar_file: self.check_export_file(tar_file, test_course_key) + # There is a bug in the underlying management/base code that tries to make + # all manageent command output be unicode. This management command + # outputs the binary tar file data and so breaks in python3. In python2 + # the code is happy to pass bytes back and forth and in later versions of + # django this is fixed. Howevere it's not possible to get this test to + # pass in Python3 and django 1.11 + @unittest.skip("Bug in django 1.11 prevents this from working in python3. Re-enable after django 2.x upgrade.") @ddt.data(ModuleStoreEnum.Type.mongo, ModuleStoreEnum.Type.split) def test_export_course_stdout(self, store_type): test_course_key = self.create_dummy_course(store_type)