refactor: deprecates ModuleSystem properties for code sandboxing and cache
* Deprecates ModuleSystem can_execute_unsafe_code, get_python_lib_zip and cache properties * Adds a new CacheService and SandboxService to provide the deprecated property * Adds tests for the added CacheService and SandboxService * Updates the ModuleSystemShim tests in Lms and Studio
This commit is contained in:
@@ -41,3 +41,29 @@ def get_python_lib_zip(contentstore, course_id):
|
||||
return zip_lib.data
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
class SandboxService:
|
||||
"""
|
||||
A service which provides utilities for executing sandboxed Python code, for example, inside custom Python questions.
|
||||
|
||||
Args:
|
||||
contentstore(function): function which creates an instance of xmodule.content.ContentStore
|
||||
course_id(string or CourseLocator): identifier for the course
|
||||
"""
|
||||
def __init__(self, contentstore, course_id, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self.contentstore = contentstore
|
||||
self.course_id = course_id
|
||||
|
||||
def can_execute_unsafe_code(self):
|
||||
"""
|
||||
Returns a boolean, true if the course can run outside the sandbox.
|
||||
"""
|
||||
return can_execute_unsafe_code(self.course_id)
|
||||
|
||||
def get_python_lib_zip(self):
|
||||
"""
|
||||
Return the bytes of the course code library file, if it exists.
|
||||
"""
|
||||
return get_python_lib_zip(self.contentstore, self.course_id)
|
||||
|
||||
Reference in New Issue
Block a user