summaryrefslogtreecommitdiff
path: root/yaksh/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/models.py')
-rw-r--r--yaksh/models.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/yaksh/models.py b/yaksh/models.py
index ca41885..ad61872 100644
--- a/yaksh/models.py
+++ b/yaksh/models.py
@@ -4,6 +4,7 @@ import json
from random import sample, shuffle
from itertools import islice, cycle
from collections import Counter
+from textwrap import dedent
from django.db import models
from django.db.models import Q
from django.contrib.auth.models import User
@@ -1219,5 +1220,31 @@ class McqTestCase(TestCase):
class HookTestCase(TestCase):
- code = models.TextField()
+ hook_code = models.TextField(default=dedent\
+ ("""\
+ def check_answer(user_answer):
+ ''' Evaluates user answer to return -
+ success - Boolean, indicating if code was executed correctly
+ mark_fraction - Float, indicating fraction of the
+ weight to a test case
+ error - String, error message if success is false'''
+ success = False
+ err = "Incorrect Answer" # Please make the error message more specific
+ mark_fraction = 0.0
+
+ # write your code here
+
+ return success, err, mark_fraction
+
+ """)
+
+ )
weight = models.FloatField(default=1.0)
+
+ def get_field_value(self):
+ return {"test_case_type": "hooktestcase", "hook_code": self.hook_code,
+ "weight": self.weight}
+
+ def __str__(self):
+ return u'Hook Testcase | Correct: {0}'.format(self.hook_code)
+