From d14bf131d60af6eae6c3ff6ce5537af25420c314 Mon Sep 17 00:00:00 2001 From: maheshgudi Date: Thu, 2 Jun 2016 16:31:54 +0530 Subject: renamed python_stdout_evaluation.py to python_stdio_evaluation.py --- yaksh/python_stdout_evaluator.py | 58 ---------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 yaksh/python_stdout_evaluator.py diff --git a/yaksh/python_stdout_evaluator.py b/yaksh/python_stdout_evaluator.py deleted file mode 100644 index 6606581..0000000 --- a/yaksh/python_stdout_evaluator.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python -import sys -import traceback -import os -from os.path import join -import importlib -from contextlib import contextmanager - -# local imports -from code_evaluator import CodeEvaluator - - -@contextmanager -def redirect_stdout(): - from StringIO import StringIO - 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 - finally: - sys.stdout = old_target # restore to the previous value - - -class PythonStdoutEvaluator(CodeEvaluator): - """Tests the Python code obtained from Code Server""" - - def compile_code(self, user_answer, expected_output): - if hasattr(self, 'output_value'): - return None - else: - submitted = compile(user_answer, '', mode='exec') - with redirect_stdout() as output_buffer: - exec_scope = {} - exec submitted in exec_scope - self.output_value = output_buffer.getvalue() - return self.output_value - - def check_code(self, user_answer, expected_output): - 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: - success = True - err = "Correct answer" - - else: - success = False - err = "Incorrect Answer" - - del tb - return success, err - -- cgit