diff options
Diffstat (limited to 'testapp')
-rw-r--r-- | testapp/exam/tests.py | 63 |
1 files changed, 59 insertions, 4 deletions
diff --git a/testapp/exam/tests.py b/testapp/exam/tests.py index d76e4f8..30afb7e 100644 --- a/testapp/exam/tests.py +++ b/testapp/exam/tests.py @@ -1,7 +1,7 @@ from django.utils import unittest from exam.models import User, Profile, Question, Quiz, QuestionPaper,\ - QuestionSet, AnswerPaper, Answer -import datetime + QuestionSet, AnswerPaper, Answer, TestCase +import datetime, json def setUpModule(): @@ -51,12 +51,39 @@ class ProfileTestCases(unittest.TestCase): class QuestionTestCases(unittest.TestCase): def setUp(self): # Single question details + # self.question = Question(summary='Demo question', language='Python', + # type='Code', active=True, + # description='Write a function', points=1.0, + # test='Test Cases', snippet='def myfunc()') self.question = Question(summary='Demo question', language='Python', type='Code', active=True, description='Write a function', points=1.0, - test='Test Cases', snippet='def myfunc()') + snippet='def myfunc()') self.question.save() self.question.tags.add('python', 'function') + self.testcase = TestCase(question=self.question, + func_name='def myfunc', kw_args='a=10,b=11', + pos_args='12,13', expected_answer='15') + answer_data = {"user_answer": "demo_answer", + "test_parameter": [{"func_name": "def myfunc", + "expected_answer": "15", + "test_id": self.testcase.id, + "pos_args": ["12", "13"], + "kw_args": {"a": "10", + "b": "11"} + }], + "ref_code_path": "", + "id": self.question.id, + "language": "Python"} + self.answer_data_json = json.dumps(answer_data) + self.user_answer = "demo_answer" + + +# {"user_answer": "demo_answer", +# "test_parameter": [{"func_name": "def myfunc", +# "expected_answer": "15", "test_id": null, "pos_args": ["12", "13"], +# "kw_args": {"a": "10", "b": "11"}}], +# "ref_code_path": "", "id": 21, "language": "Python"} def test_question(self): """ Test question """ @@ -67,13 +94,41 @@ class QuestionTestCases(unittest.TestCase): self.assertEqual(self.question.description, 'Write a function') self.assertEqual(self.question.points, 1.0) self.assertTrue(self.question.active) - self.assertEqual(self.question.test, 'Test Cases') + # self.assertEqual(self.question.test, 'Test Cases') self.assertEqual(self.question.snippet, 'def myfunc()') tag_list = [] for tag in self.question.tags.all(): tag_list.append(tag.name) self.assertEqual(tag_list, ['python', 'function']) + def test_consolidate_answer_data(self): + """ Test consolidate_answer_data function """ + result = self.question.consolidate_answer_data([self.testcase], + user_answer) + self.assertEqual(result, self.answer_data_json) + + + +############################################################################### +class TestCaseTestCases(unittest.TestCase): + def setUp(self): + self.question = Question(summary='Demo question', language='Python', + type='Code', active=True, + description='Write a function', points=1.0, + snippet='def myfunc()') + self.question.save() + self.testcase = TestCase(question=self.question, + func_name='def myfunc', kw_args='a=10,b=11', + pos_args='12,13', expected_answer='15') + + def test_testcase(self): + """ Test question """ + self.assertEqual(self.testcase.question, self.question) + self.assertEqual(self.testcase.func_name, 'def myfunc') + self.assertEqual(self.testcase.kw_args, 'a=10,b=11') + self.assertEqual(self.testcase.pos_args, '12,13') + self.assertEqual(self.testcase.expected_answer, '15') + ############################################################################### class QuizTestCases(unittest.TestCase): |