test: fix test cases and lint issues
This commit is contained in:
committed by
Agrendalath
parent
20ed3d64ec
commit
d0fa2d65e3
@@ -70,7 +70,7 @@ class TestXBlockI18nService(ModuleStoreTestCase):
|
||||
self.course = CourseFactory.create()
|
||||
self.field_data = mock.Mock()
|
||||
self.descriptor = BlockFactory(category="pure", parent=self.course)
|
||||
self.runtime = _preview_module_system(
|
||||
_preview_module_system(
|
||||
self.request,
|
||||
self.descriptor,
|
||||
self.field_data,
|
||||
@@ -81,7 +81,7 @@ class TestXBlockI18nService(ModuleStoreTestCase):
|
||||
"""
|
||||
return the block i18n service.
|
||||
"""
|
||||
i18n_service = self.runtime.service(descriptor, 'i18n')
|
||||
i18n_service = self.descriptor.runtime.service(descriptor, 'i18n')
|
||||
self.assertIsNotNone(i18n_service)
|
||||
self.assertIsInstance(i18n_service, XBlockI18nService)
|
||||
return i18n_service
|
||||
@@ -171,7 +171,7 @@ class TestXBlockI18nService(ModuleStoreTestCase):
|
||||
"""
|
||||
Test: i18n service should be callable in studio.
|
||||
"""
|
||||
self.assertTrue(callable(self.runtime._services.get('i18n'))) # pylint: disable=protected-access
|
||||
self.assertTrue(callable(self.descriptor.runtime._services.get('i18n'))) # pylint: disable=protected-access
|
||||
|
||||
|
||||
class InternationalizationTest(ModuleStoreTestCase):
|
||||
|
||||
@@ -299,7 +299,7 @@ def load_services_for_studio(runtime, user):
|
||||
(i.e. whenever we're not loading preview module system.) This is required to make information
|
||||
about the current user (especially permissions) available via services as needed.
|
||||
"""
|
||||
services={
|
||||
services = {
|
||||
"user": DjangoXBlockUserService(user),
|
||||
"studio_user_permissions": StudioPermissionsService(user),
|
||||
"mako": MakoService(),
|
||||
@@ -309,7 +309,7 @@ def load_services_for_studio(runtime, user):
|
||||
"library_tools": LibraryToolsService(modulestore(), user.id)
|
||||
}
|
||||
|
||||
runtime._services.update(services)
|
||||
runtime._services.update(services) # lint-amnesty, pylint: disable=protected-access
|
||||
|
||||
|
||||
@require_http_methods("GET")
|
||||
|
||||
@@ -93,7 +93,7 @@ def preview_handler(request, usage_key_string, handler, suffix=''):
|
||||
return webob_to_django_response(resp)
|
||||
|
||||
|
||||
def handler_url(block, handler_name, suffix='', query='', thirdparty=False):
|
||||
def handler_url(block, handler_name, suffix='', query='', thirdparty=False): # lint-amnesty, pylint: disable=unused-argument
|
||||
"""
|
||||
Handler URL function for Preview
|
||||
"""
|
||||
@@ -120,14 +120,17 @@ def preview_applicable_aside_types(block, applicable_aside_types=None):
|
||||
]
|
||||
|
||||
|
||||
def render_child_placeholder(block, view_name, context, wrap_xblock=None):
|
||||
def render_child_placeholder(block, view_name, context, wrap_block=None):
|
||||
"""
|
||||
Renders a placeholder XBlock.
|
||||
"""
|
||||
return wrap_xblock(block, view_name, Fragment(), context)
|
||||
return wrap_block(block, view_name, Fragment(), context)
|
||||
|
||||
|
||||
def preview_layout_asides(block, context, frag, view_name, aside_frag_fns, wrap_aside=None):
|
||||
"""
|
||||
Custom layout of asides for preview
|
||||
"""
|
||||
position_for_asides = '<!-- footer for xblock_aside -->'
|
||||
result = Fragment()
|
||||
result.add_fragment_resources(frag)
|
||||
@@ -200,7 +203,7 @@ def _preview_module_system(request, descriptor, field_data):
|
||||
else:
|
||||
preview_anonymous_user_id = anonymous_id_for_user(request.user, course_id)
|
||||
|
||||
services={
|
||||
services = {
|
||||
"field-data": field_data,
|
||||
"i18n": XBlockI18nService,
|
||||
'mako': mako_service,
|
||||
@@ -217,7 +220,7 @@ def _preview_module_system(request, descriptor, field_data):
|
||||
'replace_urls': replace_url_service
|
||||
}
|
||||
|
||||
descriptor.runtime.get_block_for_descriptor = partial(_load_preview_block, request),
|
||||
descriptor.runtime.get_block_for_descriptor = partial(_load_preview_block, request)
|
||||
descriptor.runtime.mixins = settings.XBLOCK_MIXINS
|
||||
|
||||
# Set up functions to modify the fragment produced by student_view
|
||||
@@ -232,11 +235,11 @@ def _preview_module_system(request, descriptor, field_data):
|
||||
descriptor.runtime.applicable_aside_types_override = preview_applicable_aside_types
|
||||
descriptor.runtime.render_child_placeholder = partial(
|
||||
render_child_placeholder,
|
||||
wrap_xblock = descriptor.runtime.wrap_xblock
|
||||
wrap_block=descriptor.runtime.wrap_xblock
|
||||
)
|
||||
descriptor.runtime.layout_asides_override = partial(
|
||||
preview_layout_asides,
|
||||
wrap_aside = descriptor.runtime.wrap_aside
|
||||
wrap_aside=descriptor.runtime.wrap_aside
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -214,12 +214,12 @@ class StudioXBlockServiceBindingTest(ModuleStoreTestCase):
|
||||
Tests that the 'user' and 'i18n' services are provided by the Studio runtime.
|
||||
"""
|
||||
descriptor = BlockFactory(category="pure", parent=self.course)
|
||||
runtime = _preview_module_system(
|
||||
_preview_module_system(
|
||||
self.request,
|
||||
descriptor,
|
||||
self.field_data,
|
||||
)
|
||||
service = runtime.service(descriptor, expected_service)
|
||||
service = descriptor.runtime.service(descriptor, expected_service)
|
||||
self.assertIsNotNone(service)
|
||||
|
||||
|
||||
@@ -245,15 +245,16 @@ class CmsModuleSystemShimTest(ModuleStoreTestCase):
|
||||
self.descriptor = BlockFactory(category="video", parent=course)
|
||||
self.field_data = mock.Mock()
|
||||
self.contentstore = contentstore()
|
||||
self.runtime = _preview_module_system(
|
||||
self.descriptor = BlockFactory(category="problem", parent=course)
|
||||
_preview_module_system(
|
||||
self.request,
|
||||
descriptor=BlockFactory(category="problem", parent=course),
|
||||
descriptor=self.descriptor,
|
||||
field_data=mock.Mock(),
|
||||
)
|
||||
self.course = self.store.get_item(course.location)
|
||||
|
||||
def test_get_user_role(self):
|
||||
assert self.runtime.get_user_role() == 'staff'
|
||||
assert self.descriptor.runtime.get_user_role() == 'staff'
|
||||
|
||||
@XBlock.register_temp_plugin(PureXBlock, identifier='pure')
|
||||
def test_render_template(self):
|
||||
@@ -263,10 +264,10 @@ class CmsModuleSystemShimTest(ModuleStoreTestCase):
|
||||
|
||||
@override_settings(COURSES_WITH_UNSAFE_CODE=[r'course-v1:edX\+LmsModuleShimTest\+2021_Fall'])
|
||||
def test_can_execute_unsafe_code(self):
|
||||
assert self.runtime.can_execute_unsafe_code()
|
||||
assert self.descriptor.runtime.can_execute_unsafe_code()
|
||||
|
||||
def test_cannot_execute_unsafe_code(self):
|
||||
assert not self.runtime.can_execute_unsafe_code()
|
||||
assert not self.descriptor.runtime.can_execute_unsafe_code()
|
||||
|
||||
@override_settings(PYTHON_LIB_FILENAME=PYTHON_LIB_FILENAME)
|
||||
def test_get_python_lib_zip(self):
|
||||
@@ -276,7 +277,7 @@ class CmsModuleSystemShimTest(ModuleStoreTestCase):
|
||||
source_file=self.PYTHON_LIB_SOURCE_FILE,
|
||||
target_filename=self.PYTHON_LIB_FILENAME,
|
||||
)
|
||||
assert self.runtime.get_python_lib_zip() == zipfile
|
||||
assert self.descriptor.runtime.get_python_lib_zip() == zipfile
|
||||
|
||||
def test_no_get_python_lib_zip(self):
|
||||
zipfile = upload_file_to_course(
|
||||
@@ -285,38 +286,40 @@ class CmsModuleSystemShimTest(ModuleStoreTestCase):
|
||||
source_file=self.PYTHON_LIB_SOURCE_FILE,
|
||||
target_filename=self.PYTHON_LIB_FILENAME,
|
||||
)
|
||||
assert self.runtime.get_python_lib_zip() is None
|
||||
assert self.descriptor.runtime.get_python_lib_zip() is None
|
||||
|
||||
def test_cache(self):
|
||||
assert hasattr(self.runtime.cache, 'get')
|
||||
assert hasattr(self.runtime.cache, 'set')
|
||||
assert hasattr(self.descriptor.runtime.cache, 'get')
|
||||
assert hasattr(self.descriptor.runtime.cache, 'set')
|
||||
|
||||
def test_replace_urls(self):
|
||||
html = '<a href="/static/id">'
|
||||
assert self.runtime.replace_urls(html) == \
|
||||
assert self.descriptor.runtime.replace_urls(html) == \
|
||||
static_replace.replace_static_urls(html, course_id=self.course.id)
|
||||
|
||||
def test_anonymous_user_id_preview(self):
|
||||
assert self.runtime.anonymous_student_id == 'student'
|
||||
assert self.descriptor.runtime.anonymous_student_id == 'student'
|
||||
|
||||
@override_waffle_flag(INDIVIDUALIZE_ANONYMOUS_USER_ID, active=True)
|
||||
def test_anonymous_user_id_individual_per_student(self):
|
||||
"""Test anonymous_user_id on a block which uses per-student anonymous IDs"""
|
||||
# Create the runtime with the flag turned on.
|
||||
runtime = _preview_module_system(
|
||||
descriptor = BlockFactory(category="problem", parent=self.course)
|
||||
_preview_module_system(
|
||||
self.request,
|
||||
descriptor=BlockFactory(category="problem", parent=self.course),
|
||||
descriptor=descriptor,
|
||||
field_data=mock.Mock(),
|
||||
)
|
||||
assert runtime.anonymous_student_id == '26262401c528d7c4a6bbeabe0455ec46'
|
||||
assert descriptor.runtime.anonymous_student_id == '26262401c528d7c4a6bbeabe0455ec46'
|
||||
|
||||
@override_waffle_flag(INDIVIDUALIZE_ANONYMOUS_USER_ID, active=True)
|
||||
def test_anonymous_user_id_individual_per_course(self):
|
||||
"""Test anonymous_user_id on a block which uses per-course anonymous IDs"""
|
||||
# Create the runtime with the flag turned on.
|
||||
runtime = _preview_module_system(
|
||||
descriptor = BlockFactory(category="lti", parent=self.course)
|
||||
_preview_module_system(
|
||||
self.request,
|
||||
descriptor=BlockFactory(category="lti", parent=self.course),
|
||||
descriptor=descriptor,
|
||||
field_data=mock.Mock(),
|
||||
)
|
||||
assert runtime.anonymous_student_id == 'ad503f629b55c531fed2e45aa17a3368'
|
||||
assert descriptor.runtime.anonymous_student_id == 'ad503f629b55c531fed2e45aa17a3368'
|
||||
|
||||
Reference in New Issue
Block a user