summaryrefslogtreecommitdiff
path: root/yaksh/python_assertion_evaluator.py
diff options
context:
space:
mode:
authorankitjavalkar2016-11-02 16:02:03 +0530
committerankitjavalkar2016-11-10 12:43:14 +0530
commit053e27000540396b84c26d5a5f593d4389e0787a (patch)
tree0d48b337b2bc1e615b436784d78edf2daba08791 /yaksh/python_assertion_evaluator.py
parent7ae8584a4f4d095e005d6239102c0f26611ac006 (diff)
downloadonline_test-053e27000540396b84c26d5a5f593d4389e0787a.tar.gz
online_test-053e27000540396b84c26d5a5f593d4389e0787a.tar.bz2
online_test-053e27000540396b84c26d5a5f593d4389e0787a.zip
dd basic partial marking feature per test case
Diffstat (limited to 'yaksh/python_assertion_evaluator.py')
-rw-r--r--yaksh/python_assertion_evaluator.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/yaksh/python_assertion_evaluator.py b/yaksh/python_assertion_evaluator.py
index dd1c041..350bc38 100644
--- a/yaksh/python_assertion_evaluator.py
+++ b/yaksh/python_assertion_evaluator.py
@@ -17,6 +17,7 @@ class PythonAssertionEvaluator(CodeEvaluator):
def setup(self):
super(PythonAssertionEvaluator, self).setup()
self.exec_scope = None
+ self.files = []
def teardown(self):
# Delete the created file.
@@ -24,8 +25,7 @@ class PythonAssertionEvaluator(CodeEvaluator):
delete_files(self.files)
super(PythonAssertionEvaluator, self).teardown()
- def compile_code(self, user_answer, file_paths, test_case):
- self.files = []
+ def compile_code(self, user_answer, file_paths, test_case, marks):
if file_paths:
self.files = copy_files(file_paths)
if self.exec_scope:
@@ -36,8 +36,9 @@ class PythonAssertionEvaluator(CodeEvaluator):
exec(submitted, self.exec_scope)
return self.exec_scope
- def check_code(self, user_answer, file_paths, test_case):
+ def check_code(self, user_answer, file_paths, partial_grading, test_case, marks):
success = False
+ test_case_marks = 0.0
try:
tb = None
_tests = compile(test_case, '<string>', mode='exec')
@@ -53,5 +54,6 @@ class PythonAssertionEvaluator(CodeEvaluator):
else:
success = True
err = 'Correct answer'
+ test_case_marks = float(marks) if partial_grading else 0.0
del tb
- return success, err
+ return success, err, test_case_marks