Fix mocks of open() - BOM-597

This commit is contained in:
Jeremy Bowman
2019-09-19 13:53:37 -04:00
parent fc57bf9763
commit ae2c3b8edf
2 changed files with 17 additions and 5 deletions

View File

@@ -9,6 +9,7 @@ import unittest
from uuid import uuid4
import mock
import six
from opaque_keys.edx.keys import CourseKey
from opaque_keys.edx.locator import BlockUsageLocator, CourseLocator
from path import Path as path
@@ -22,6 +23,11 @@ from xmodule.modulestore.xml_importer import StaticContentImporter, _update_and_
from xmodule.tests import DATA_DIR
from xmodule.x_module import XModuleMixin
if six.PY2:
OPEN_BUILTIN = '__builtin__.open'
else:
OPEN_BUILTIN = 'builtins.open'
class ModuleStoreNoSettings(unittest.TestCase):
"""
@@ -379,7 +385,7 @@ class StaticContentImporterTest(unittest.TestCase):
base_dir = path('/path/to/dir')
full_file_path = os.path.join(base_dir, 'static/some_file.txt')
self.mocked_content_store.generate_thumbnail.return_value = (None, None)
with mock.patch("__builtin__.open", mock.mock_open(read_data="data")) as mock_file:
with mock.patch(OPEN_BUILTIN, mock.mock_open(read_data=b"data")) as mock_file:
self.static_content_importer.import_static_file(
full_file_path=full_file_path,
base_dir=base_dir

View File

@@ -9,6 +9,7 @@ import tempfile
import textwrap
import unittest
import six
from ddt import data, ddt, file_data, unpack
from mock import MagicMock, mock_open, patch
from path import Path as path
@@ -17,6 +18,11 @@ from paver.easy import BuildFailure
import pavelib.quality
from pavelib.paver_tests.utils import PaverTestCase, fail_on_eslint
if six.PY2:
OPEN_BUILTIN = '__builtin__.open'
else:
OPEN_BUILTIN = 'builtins.open'
@ddt
class TestPaverQualityViolations(unittest.TestCase):
@@ -287,7 +293,7 @@ class TestPaverRunQuality(PaverTestCase):
self.addCleanup(shutil.rmtree, self.report_dir)
self.addCleanup(report_dir_patcher.stop)
@patch('__builtin__.open', mock_open())
@patch(OPEN_BUILTIN, mock_open())
def test_failure_on_diffquality_pylint(self):
"""
If diff-quality fails on pylint, the paver task should also fail, but
@@ -308,7 +314,7 @@ class TestPaverRunQuality(PaverTestCase):
# of a diff-quality pylint failure, eslint is still called.
self.assertEqual(self._mock_paver_sh.call_count, 2)
@patch('__builtin__.open', mock_open())
@patch(OPEN_BUILTIN, mock_open())
def test_failure_on_diffquality_eslint(self):
"""
If diff-quality fails on eslint, the paver task should also fail
@@ -329,7 +335,7 @@ class TestPaverRunQuality(PaverTestCase):
# and once for diff quality with eslint
self.assertEqual(self._mock_paver_sh.call_count, 4)
@patch('__builtin__.open', mock_open())
@patch(OPEN_BUILTIN, mock_open())
def test_other_exception(self):
"""
If diff-quality fails for an unknown reason on the first run, then
@@ -342,7 +348,7 @@ class TestPaverRunQuality(PaverTestCase):
# Test that pylint is NOT called by counting calls
self.assertEqual(self._mock_paver_sh.call_count, 1)
@patch('__builtin__.open', mock_open())
@patch(OPEN_BUILTIN, mock_open())
def test_no_diff_quality_failures(self):
# Assert nothing is raised
pavelib.quality.run_quality("")