summaryrefslogtreecommitdiff
path: root/yaksh/bash_stdio_evaluator.py
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/bash_stdio_evaluator.py')
-rw-r--r--yaksh/bash_stdio_evaluator.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/yaksh/bash_stdio_evaluator.py b/yaksh/bash_stdio_evaluator.py
index 5431e5d..56f2e35 100644
--- a/yaksh/bash_stdio_evaluator.py
+++ b/yaksh/bash_stdio_evaluator.py
@@ -6,7 +6,7 @@ from os.path import isfile
#local imports
from code_evaluator import CodeEvaluator
from stdio_evaluator import Evaluator
-
+from file_utils import copy_files, delete_files
class BashStdioEvaluator(CodeEvaluator):
"""Evaluates Bash StdIO based code"""
@@ -18,8 +18,13 @@ class BashStdioEvaluator(CodeEvaluator):
def teardown(self):
super(BashStdioEvaluator, self).teardown()
os.remove(self.submit_code_path)
+ if self.files:
+ delete_files(self.files)
- def compile_code(self, user_answer, expected_input, expected_output):
+ def compile_code(self, user_answer, file_paths, expected_input, expected_output):
+ self.files = []
+ if file_paths:
+ self.files = copy_files(file_paths)
if not isfile(self.submit_code_path):
msg = "No file at %s or Incorrect path" % self.submit_code_path
return False, msg
@@ -27,7 +32,7 @@ class BashStdioEvaluator(CodeEvaluator):
user_answer = user_answer.replace("\r", "")
self.write_to_submit_code_file(self.submit_code_path, user_answer)
- def check_code(self, user_answer, expected_input, expected_output):
+ def check_code(self, user_answer, file_paths, expected_input, expected_output):
success = False
expected_input = str(expected_input).replace('\r', '')
proc = subprocess.Popen("bash ./Test.sh",