summaryrefslogtreecommitdiff
path: root/testapp/tests
diff options
context:
space:
mode:
Diffstat (limited to 'testapp/tests')
-rw-r--r--testapp/tests/__init__.py0
-rw-r--r--testapp/tests/test_bash_evaluation.py41
-rw-r--r--testapp/tests/test_c_cpp_evaluation.py77
-rw-r--r--testapp/tests/test_code_evaluation.py24
-rw-r--r--testapp/tests/test_java_evaluation.py53
-rw-r--r--testapp/tests/test_python_evaluation.py53
-rw-r--r--testapp/tests/test_scilab_evaluation.py47
7 files changed, 0 insertions, 295 deletions
diff --git a/testapp/tests/__init__.py b/testapp/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testapp/tests/__init__.py
+++ /dev/null
diff --git a/testapp/tests/test_bash_evaluation.py b/testapp/tests/test_bash_evaluation.py
deleted file mode 100644
index 4f7e4b6..0000000
--- a/testapp/tests/test_bash_evaluation.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import unittest
-import os
-from testapp.yaksh.bash_code_evaluator import BashCodeEvaluator
-from testapp.yaksh.settings import SERVER_TIMEOUT
-
-class BashEvaluationTestCases(unittest.TestCase):
- def setUp(self):
- self.language = "bash"
- self.ref_code_path = "bash_files/sample.sh,bash_files/sample.args"
- self.in_dir = "/tmp"
- self.test_case_data = []
- self.timeout_msg = ("Code took more than {0} seconds to run. "
- "You probably have an infinite loop in your code.").format(SERVER_TIMEOUT)
- self.test = None
-
- def test_correct_answer(self):
- user_answer = "#!/bin/bash\n[[ $# -eq 2 ]] && echo $(( $1 + $2 )) && exit $(( $1 + $2 ))"
- get_class = BashCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertTrue(result.get("success"))
- self.assertEqual(result.get("error"), "Correct answer")
-
- def test_error(self):
- user_answer = "#!/bin/bash\n[[ $# -eq 2 ]] && echo $(( $1 - $2 )) && exit $(( $1 - $2 ))"
- get_class = BashCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertTrue("Error" in result.get("error"))
-
- def test_infinite_loop(self):
- user_answer = "#!/bin/bash\nwhile [ 1 ] ; do echo "" > /dev/null ; done"
- get_class = BashCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertEquals(result.get("error"), self.timeout_msg)
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/testapp/tests/test_c_cpp_evaluation.py b/testapp/tests/test_c_cpp_evaluation.py
deleted file mode 100644
index 9cbc013..0000000
--- a/testapp/tests/test_c_cpp_evaluation.py
+++ /dev/null
@@ -1,77 +0,0 @@
-import unittest
-import os
-from testapp.yaksh.cpp_code_evaluator import CppCodeEvaluator
-from testapp.yaksh.settings import SERVER_TIMEOUT
-
-class CEvaluationTestCases(unittest.TestCase):
- def setUp(self):
- self.language = "C"
- self.ref_code_path = "c_cpp_files/main.cpp"
- self.in_dir = "/tmp"
- self.test_case_data = []
- self.timeout_msg = ("Code took more than {0} seconds to run. "
- "You probably have an infinite loop in your code.").format(SERVER_TIMEOUT)
- self.test = None
-
- def test_correct_answer(self):
- user_answer = "int add(int a, int b)\n{return a+b;}"
- get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertTrue(result.get("success"))
- self.assertEqual(result.get("error"), "Correct answer")
-
- def test_compilation_error(self):
- user_answer = "int add(int a, int b)\n{return a+b}"
- get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertTrue("Compilation Error" in result.get("error"))
-
- def test_infinite_loop(self):
- user_answer = "int add(int a, int b)\n{while(1>0){}}"
- get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertEquals(result.get("error"), self.timeout_msg)
-
-
-###############################################################################
-class CppEvaluationTestCases(unittest.TestCase):
- def setUp(self):
- self.language = "CPP"
- self.ref_code_path = "c_cpp_files/main.cpp"
- self.in_dir = "/tmp"
- self.test_case_data = []
- self.timeout_msg = ("Code took more than {0} seconds to run. "
- "You probably have an infinite loop in your code.").format(SERVER_TIMEOUT)
- self.test = None
-
- def test_correct_answer(self):
- user_answer = "int add(int a, int b)\n{return a+b;}"
- get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertTrue(result.get("success"))
- self.assertEqual(result.get("error"), "Correct answer")
-
- def test_compilation_error(self):
- user_answer = "int add(int a, int b)\n{return a+b}"
- get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertTrue("Compilation Error" in result.get("error"))
-
- def test_infinite_loop(self):
- user_answer = "int add(int a, int b)\n{while(1>0){}}"
- get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertEquals(result.get("error"), self.timeout_msg)
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/testapp/tests/test_code_evaluation.py b/testapp/tests/test_code_evaluation.py
deleted file mode 100644
index 10b88b5..0000000
--- a/testapp/tests/test_code_evaluation.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import unittest
-import os
-from testapp.yaksh import python_code_evaluator
-from testapp.yaksh.language_registry import _LanguageRegistry, set_registry, get_registry
-from testapp.yaksh.settings import SERVER_TIMEOUT
-
-
-class RegistryTestCase(unittest.TestCase):
- def setUp(self):
- set_registry()
- self.registry_object = get_registry()
- self.language_registry = _LanguageRegistry()
-
- def test_set_register(self):
- class_name = getattr(python_code_evaluator, 'PythonCodeEvaluator')
- self.registry_object.register("python", "testapp.yaksh.python_code_evaluator.PythonCodeEvaluator")
- self.assertEquals(self.registry_object.get_class("python"), class_name)
-
- def tearDown(self):
- self.registry_object = None
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/testapp/tests/test_java_evaluation.py b/testapp/tests/test_java_evaluation.py
deleted file mode 100644
index 92339e4..0000000
--- a/testapp/tests/test_java_evaluation.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import unittest
-import os
-from testapp.yaksh import code_evaluator as evaluator
-from testapp.yaksh.java_code_evaluator import JavaCodeEvaluator
-
-
-class JavaEvaluationTestCases(unittest.TestCase):
- def setUp(self):
- self.language = "java"
- self.ref_code_path = "java_files/main_square.java"
- self.in_dir = "/tmp"
- self.test_case_data = []
- evaluator.SERVER_TIMEOUT = 9
- self.timeout_msg = ("Code took more than {0} seconds to run. "
- "You probably have an infinite loop in "
- "your code.").format(evaluator.SERVER_TIMEOUT)
- self.test = None
-
- def tearDown(self):
- evaluator.SERVER_TIMEOUT = 2
-
- def test_correct_answer(self):
- user_answer = "class Test {\n\tint square_num(int a) {\n\treturn a*a;\n\t}\n}"
- get_class = JavaCodeEvaluator(self.test_case_data, self.test,
- self.language, user_answer,
- self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertTrue(result.get("success"))
- self.assertEqual(result.get("error"), "Correct answer")
-
- def test_error(self):
- user_answer = "class Test {\n\tint square_num(int a) {\n\treturn a*a"
- get_class = JavaCodeEvaluator(self.test_case_data, self.test,
- self.language, user_answer,
- self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertTrue("Error" in result.get("error"))
-
- def test_infinite_loop(self):
- user_answer = "class Test {\n\tint square_num(int a) {\n\t\twhile(0==0){\n\t\t}\n\t}\n}"
- get_class = JavaCodeEvaluator(self.test_case_data, self.test,
- self.language, user_answer,
- self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertEquals(result.get("error"), self.timeout_msg)
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/testapp/tests/test_python_evaluation.py b/testapp/tests/test_python_evaluation.py
deleted file mode 100644
index ea01fa8..0000000
--- a/testapp/tests/test_python_evaluation.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import unittest
-import os
-from testapp.yaksh.python_code_evaluator import PythonCodeEvaluator
-from testapp.yaksh.settings import SERVER_TIMEOUT
-
-class PythonEvaluationTestCases(unittest.TestCase):
- def setUp(self):
- self.language = "Python"
- self.test = None
- self.test_case_data = [{"func_name": "add",
- "expected_answer": "5",
- "test_id": u'null',
- "pos_args": ["3", "2"],
- "kw_args": {}
- }]
- self.timeout_msg = ("Code took more than {0} seconds to run. "
- "You probably have an infinite loop in your code.").format(SERVER_TIMEOUT)
-
- def test_correct_answer(self):
- user_answer = "def add(a, b):\n\treturn a + b"""
- get_class = PythonCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, ref_code_path=None, in_dir=None)
- result = get_class.evaluate()
- self.assertTrue(result.get("success"))
- self.assertEqual(result.get("error"), "Correct answer")
-
- def test_incorrect_answer(self):
- user_answer = "def add(a, b):\n\treturn a - b"
- test_case_data = [{"func_name": "add",
- "expected_answer": "5",
- "test_id": u'null',
- "pos_args": ["3", "2"],
- "kw_args": {}
- }]
- get_class = PythonCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, ref_code_path=None, in_dir=None)
- result = get_class.evaluate()
- self.assertFalse(result.get("success"))
- self.assertEqual(result.get("error"), "AssertionError in: assert add(3, 2) == 5")
-
- def test_infinite_loop(self):
- user_answer = "def add(a, b):\n\twhile True:\n\t\tpass"""
- test_case_data = [{"func_name": "add",
- "expected_answer": "5",
- "test_id": u'null',
- "pos_args": ["3", "2"],
- "kw_args": {}
- }]
- get_class = PythonCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, ref_code_path=None, in_dir=None)
- result = get_class.evaluate()
- self.assertFalse(result.get("success"))
- self.assertEquals(result.get("error"), self.timeout_msg)
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/testapp/tests/test_scilab_evaluation.py b/testapp/tests/test_scilab_evaluation.py
deleted file mode 100644
index 4d05426..0000000
--- a/testapp/tests/test_scilab_evaluation.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import unittest
-import os
-from testapp.yaksh.scilab_code_evaluator import ScilabCodeEvaluator
-from testapp.yaksh.settings import SERVER_TIMEOUT
-
-class ScilabEvaluationTestCases(unittest.TestCase):
- def setUp(self):
- self.language = "scilab"
- self.ref_code_path = "scilab_files/test_add.sce"
- self.in_dir = "/tmp"
- self.test_case_data = []
- self.timeout_msg = ("Code took more than {0} seconds to run. "
- "You probably have an infinite loop in your code.").format(SERVER_TIMEOUT)
- self.test = None
-
- def test_correct_answer(self):
- user_answer = "funcprot(0)\nfunction[c]=add(a,b)\n\tc=a+b;\nendfunction"
- get_class = ScilabCodeEvaluator(self.test_case_data, self.test,
- self.language, user_answer,
- self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertTrue(result.get("success"))
- self.assertEqual(result.get("error"), "Correct answer")
-
- def test_error(self):
- user_answer = "funcprot(0)\nfunction[c]=add(a,b)\n\tc=a+b;\ndis(\tendfunction"
- get_class = ScilabCodeEvaluator(self.test_case_data, self.test,
- self.language, user_answer,
- self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertTrue("error" in result.get("error"))
-
- def test_infinite_loop(self):
- user_answer = "funcprot(0)\nfunction[c]=add(a,b)\n\tc=a;\nwhile(1==1)\nend\nendfunction"
- get_class = ScilabCodeEvaluator(self.test_case_data, self.test,
- self.language, user_answer,
- self.ref_code_path, self.in_dir)
- result = get_class.evaluate()
-
- self.assertFalse(result.get("success"))
- self.assertEquals(result.get("error"), self.timeout_msg)
-
-if __name__ == '__main__':
- unittest.main()