summaryrefslogtreecommitdiff
path: root/server/robot_session.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/robot_session.py')
-rw-r--r--server/robot_session.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/server/robot_session.py b/server/robot_session.py
index e941641..b41e233 100644
--- a/server/robot_session.py
+++ b/server/robot_session.py
@@ -3,11 +3,11 @@
import threading
from db.models import Problem
-from . import problems
+import server
__all__ = ['RobotSession']
-class RobotSession(object):
+class RobotSession(server.LanguageSession):
"""Abstracts a Robot session.
Only public methods are available to the outside world due to the use of multiprocessing managers.
Therefore prefix any private methods with an underscore (_).
@@ -26,8 +26,8 @@ class RobotSession(object):
def hint(self, sid, problem_id, program):
language, problem_group, problem = Problem.get_identifier(problem_id)
- language_module = problems.load_language(language, 'common')
- problem_module = problems.load_problem(language, problem_group, problem, 'common')
+ language_module = server.problems.load_language(language, 'common')
+ problem_module = server.problems.load_problem(language, problem_group, problem, 'common')
hints = []
if hasattr(language_module, 'hint'):
@@ -42,8 +42,8 @@ class RobotSession(object):
def test(self, sid, problem_id, program):
language, problem_group, problem = Problem.get_identifier(problem_id)
- language_module = problems.load_language(language, 'common')
- problem_module = problems.load_problem(language, problem_group, problem, 'common')
+ language_module = server.problems.load_language(language, 'common')
+ problem_module = server.problems.load_problem(language, problem_group, problem, 'common')
try:
passed, hints = problem_module.test(program)
@@ -63,3 +63,6 @@ class RobotSession(object):
hint_type = mod.hint_type[hint['id']]
hint_type.instantiate(hint, self._sent_hints)
self._sent_hints.extend(hints)
+
+server.language_session_handlers['robot'] = lambda user_session, problem_id, language_identifier, group_identifier, problem_identifier: RobotSession()
+