Fix PureSystem so that runtime.publish() works for a pure XBlock.
Fix extracted from https://github.com/edx/edx-platform/pull/6035.
This commit is contained in:
committed by
Calen Pennington
parent
61ba910255
commit
2faff29a21
@@ -57,17 +57,7 @@ class BaseTestXmodule(ModuleStoreTestCase):
|
||||
"""
|
||||
Generate a new ModuleSystem that is minimally set up for testing
|
||||
"""
|
||||
runtime = get_test_system(course_id=self.course.id)
|
||||
|
||||
# When asked for a module out of a descriptor, just create a new xmodule runtime,
|
||||
# and inject it into the descriptor
|
||||
def get_module(descr):
|
||||
descr.xmodule_runtime = self.new_module_runtime()
|
||||
return descr
|
||||
|
||||
runtime.get_module = get_module
|
||||
|
||||
return runtime
|
||||
return get_test_system(course_id=self.course.id)
|
||||
|
||||
def new_descriptor_runtime(self):
|
||||
runtime = get_test_descriptor_system()
|
||||
|
||||
@@ -51,11 +51,17 @@ class PureXBlock(XBlock):
|
||||
pass
|
||||
|
||||
|
||||
class EmptyXModule(XModule):
|
||||
class EmptyXModule(XModule): # pylint: disable=abstract-method
|
||||
"""
|
||||
Empty XModule for testing with no dependencies.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
class EmptyXModuleDescriptor(XModuleDescriptor):
|
||||
class EmptyXModuleDescriptor(XModuleDescriptor): # pylint: disable=abstract-method
|
||||
"""
|
||||
Empty XModule for testing with no dependencies.
|
||||
"""
|
||||
module_class = EmptyXModule
|
||||
|
||||
|
||||
@@ -1118,6 +1124,9 @@ class TestRebindModule(TestSubmittingProblems):
|
||||
@ddt.ddt
|
||||
@override_settings(MODULESTORE=TEST_DATA_MOCK_MODULESTORE)
|
||||
class TestEventPublishing(ModuleStoreTestCase, LoginEnrollmentTestCase):
|
||||
"""
|
||||
Tests of event publishing for both XModules and XBlocks.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
@@ -1138,7 +1147,7 @@ class TestEventPublishing(ModuleStoreTestCase, LoginEnrollmentTestCase):
|
||||
request.user = self.mock_user
|
||||
course = CourseFactory()
|
||||
descriptor = ItemFactory(category=block_type, parent=course)
|
||||
field_data_cache = FieldDataCache([course, descriptor], course.id, self.mock_user)
|
||||
field_data_cache = FieldDataCache([course, descriptor], course.id, self.mock_user) # pylint: disable=no-member
|
||||
block = render.get_module(self.mock_user, request, descriptor.location, field_data_cache)
|
||||
|
||||
event_type = 'event_type'
|
||||
@@ -1148,8 +1157,4 @@ class TestEventPublishing(ModuleStoreTestCase, LoginEnrollmentTestCase):
|
||||
|
||||
mock_track_function.assert_called_once_with(request)
|
||||
|
||||
if block_type == 'xblock':
|
||||
self.assertFalse(mock_track_function.return_value.called)
|
||||
else:
|
||||
mock_track_function.return_value.assert_called_once_with(event_type, event)
|
||||
|
||||
mock_track_function.return_value.assert_called_once_with(event_type, event)
|
||||
|
||||
Reference in New Issue
Block a user