summaryrefslogtreecommitdiff
path: root/yaksh/error_messages.py
diff options
context:
space:
mode:
authoradityacp2018-04-05 15:30:01 +0530
committeradityacp2018-04-05 15:30:01 +0530
commit032d496c7fa7298a0748885b0f1c8e2c24af67d8 (patch)
tree1cacc6b570ddbc4c8de172ced8e494c8ac655f0d /yaksh/error_messages.py
parentf5c24ccf8b0bde0fe5726728a64f1e3638cf170d (diff)
downloadonline_test-032d496c7fa7298a0748885b0f1c8e2c24af67d8.tar.gz
online_test-032d496c7fa7298a0748885b0f1c8e2c24af67d8.tar.bz2
online_test-032d496c7fa7298a0748885b0f1c8e2c24af67d8.zip
Change error_messages.py, python_assertion_evaluator.py and grader.py
- Pep8 changes - Show code error message along with test case - Add nose in python exec scope
Diffstat (limited to 'yaksh/error_messages.py')
-rw-r--r--yaksh/error_messages.py34
1 files changed, 19 insertions, 15 deletions
diff --git a/yaksh/error_messages.py b/yaksh/error_messages.py
index 7ea8618..f2dc7c6 100644
--- a/yaksh/error_messages.py
+++ b/yaksh/error_messages.py
@@ -3,6 +3,7 @@ try:
except ImportError:
from itertools import izip_longest as zip_longest
+
def prettify_exceptions(exception, message, traceback=None, testcase=None):
err = {"type": "assertion",
"exception": exception,
@@ -13,23 +14,27 @@ def prettify_exceptions(exception, message, traceback=None, testcase=None):
err["traceback"] = None
if exception == 'AssertionError':
- value = ("Expected answer from the"
- + " test case did not match the output")
- err["message"] = value
+ value = ("Expected answer from the" +
+ " test case did not match the output")
+ if message:
+ err["message"] = message
+ else:
+ err["message"] = value
err["traceback"] = None
- if testcase:
- err["test_case"] = testcase
+ err["test_case"] = testcase
return err
+
def _get_incorrect_user_lines(exp_lines, user_lines):
err_line_numbers = []
for line_no, (expected_line, user_line) in \
- enumerate(zip_longest(exp_lines, user_lines)):
- if not user_line or not expected_line or \
- user_line.strip() != expected_line.strip():
+ enumerate(zip_longest(exp_lines, user_lines)):
+ if (not user_line or not expected_line or
+ user_line.strip() != expected_line.strip()):
err_line_numbers.append(line_no)
return err_line_numbers
-
+
+
def compare_outputs(expected_output, user_output, given_input=None):
given_lines = user_output.splitlines()
exp_lines = expected_output.splitlines()
@@ -44,18 +49,17 @@ def compare_outputs(expected_output, user_output, given_input=None):
msg["error_line_numbers"] = err_line_numbers
if ng != ne:
msg["error_msg"] = ("Incorrect Answer: "
- + "We had expected {} number of lines. "\
- .format(ne)
+ + "We had expected {} number of lines. ".format(ne)
+ "We got {} number of lines.".format(ng)
)
return False, msg
else:
if err_line_numbers:
msg["error_msg"] = ("Incorrect Answer: "
- + "Line number(s) {0} did not match."
- .format(", ".join(map(
- str,[x+1 for x in err_line_numbers]
- ))))
+ + "Line number(s) {0} did not match."
+ .format(", ".join(
+ map(str, [x+1 for x in err_line_numbers])
+ )))
return False, msg
else:
msg["error_msg"] = "Correct Answer"