diff options
author | maheshgudi | 2016-07-28 18:24:18 +0530 |
---|---|---|
committer | maheshgudi | 2016-07-28 18:24:18 +0530 |
commit | 1b71abc9437d721a41f017db406f312755f5a4c4 (patch) | |
tree | e4fac39cf722608c1f8bf0d208b8a3e8c39f2d9f /yaksh/python_stdio_evaluator.py | |
parent | 9411ab221e007a6c3e2901ce34f38f2267288b6e (diff) | |
download | online_test-1b71abc9437d721a41f017db406f312755f5a4c4.tar.gz online_test-1b71abc9437d721a41f017db406f312755f5a4c4.tar.bz2 online_test-1b71abc9437d721a41f017db406f312755f5a4c4.zip |
added expected input in traceback for python and made minor changes in bash_stio_evaluator and stdio_evaluator
Diffstat (limited to 'yaksh/python_stdio_evaluator.py')
-rw-r--r-- | yaksh/python_stdio_evaluator.py | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/yaksh/python_stdio_evaluator.py b/yaksh/python_stdio_evaluator.py index 003337d..aeec744 100644 --- a/yaksh/python_stdio_evaluator.py +++ b/yaksh/python_stdio_evaluator.py @@ -10,11 +10,10 @@ from ast import literal_eval from code_evaluator import CodeEvaluator from StringIO import StringIO - +from textwrap import dedent @contextmanager def redirect_stdout(): new_target = StringIO() - old_target, sys.stdout = sys.stdout, new_target # replace sys.stdout try: yield new_target # run some code with the replaced stdout @@ -32,7 +31,6 @@ class PythonStdioEvaluator(CodeEvaluator): input_buffer.write(expected_input) input_buffer.seek(0) sys.stdin = input_buffer - with redirect_stdout() as output_buffer: exec_scope = {} exec submitted in exec_scope @@ -43,21 +41,19 @@ class PythonStdioEvaluator(CodeEvaluator): success = False tb = None - if expected_output in user_answer: - success = False - err = ("Incorrect Answer: Please avoid " - "printing the expected output directly" - ) - elif self.output_value == expected_output: - + if self.output_value == expected_output: success = True err = "Correct Answer" - else: success = False - err = """Incorrect Answer:\nExpected output - {0} - and your output - {1}"""\ - .format(expected_output, self.output_value) - + err = dedent(""" + Incorrect Answer: + Given input - {0}, + Expected output - {1} and your output - {2} + """ + .format(expected_input, + expected_output, self.output_value + ) + ) del tb return success, err |