test: fix test cases and lint issues

This commit is contained in:
Kaustav Banerjee
2023-02-05 12:00:29 +05:30
committed by Agrendalath
parent 20ed3d64ec
commit d0fa2d65e3
30 changed files with 442 additions and 313 deletions

View File

@@ -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):

View File

@@ -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")

View File

@@ -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
)

View File

@@ -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'