@@ -20,24 +20,8 @@ def __init__(self):
2020 self .feedback = Feedback ("Oh no, your solution is incorrect! Please, try again." )
2121 self .success_msg = "Great work!"
2222 self .errors_allowed = False
23- self .tags = {}
2423 self .failure_msg = ""
2524 self .fallback_ast = None
26- self .test_stack = []
27- self .test_mode = None
28-
29- def set_success_msg (self , success_msg ):
30- self .success_msg = success_msg
31-
32- def allow_errors (self ):
33- self .errors_allowed = True
34-
35- def reject_errors (self ):
36- self .errors_allowed = False
37-
38- def fail (self , failure_msg ):
39- self .failed_test = True
40- self .feedback = Feedback (failure_msg )
4125
4226 def do_test (self , testobj , prepend_on_fail = "" , fallback_ast = None ):
4327 """Do test.
@@ -46,16 +30,9 @@ def do_test(self, testobj, prepend_on_fail="", fallback_ast=None):
4630 the state of the reporter changes and the feedback is kept.
4731 """
4832
49- if self .test_mode is 'or' :
50- return self .test_stack .append ([testobj , prepend_on_fail , fallback_ast ])
51-
5233 if prepend_on_fail : self .failure_msg = prepend_on_fail
5334 if fallback_ast : self .fallback_ast = fallback_ast
5435
55- if self .failed_test :
56- self .feedback .message = self .failure_msg + self .feedback .message
57- raise TestFail
58- return
5936 if isinstance (testobj , Test ):
6037 testobj .test ()
6138 result = testobj .result
@@ -74,72 +51,35 @@ def do_test(self, testobj, prepend_on_fail="", fallback_ast=None):
7451 #self.failure_msg_stack.pop()
7552 return result
7653
77- def do_tests (self , testobjs ):
78- """Do multiple tests.
79-
80- Execute an array of tests.
81- """
82- for testobj in testobjs :
83- if self .failed_test :
84- break
85-
86- self .do_test (testobj )
87-
88- def start_or_test (self ):
89- self .test_mode = 'or'
90- self .test_stack = []
91-
92- def end_or_test (self ):
93- self .test_mode = None
94- first_message = None
95- success = False
96- for sct_args in self .test_stack :
97- try :
98- self .do_test (* sct_args )
99- success = True
100- except TestFail as e :
101- if not first_message : first_message = self .feedback .message
102- self .failed_test = False
103-
104- if success : return
105-
106- self .failed_test = True
107- self .feedback .message = first_message
108- raise TestFail
109-
110- def set_tag (self , key , value ):
111- self .tags [key ] = value
112-
113-
11454 def build_payload (self , error ):
11555 if (error and not self .failed_test and not self .errors_allowed ):
11656 feedback_msg = "Your code contains an error: `%s`" % str (error [1 ])
117- return ( {
57+ return {
11858 "correct" : False ,
119- "message" : Reporter .to_html (feedback_msg ),
120- "tags" : { "fun" : "runtime_error" }})
59+ "message" : Reporter .to_html (feedback_msg )
60+ }
12161
12262 if self .failed_test :
12363 if not self .feedback .line_info :
124- return ( {
64+ return {
12565 "correct" : False ,
126- "message" : Reporter .to_html (self .feedback .message ),
127- "tags" : self . tags })
66+ "message" : Reporter .to_html (self .feedback .message )
67+ }
12868 else :
12969 # Hack to make it work with campus app implementation
13070 if self .feedback .line_info ["column_start" ] is None :
13171 col_start = None
13272 else :
13373 col_start = self .feedback .line_info ["column_start" ] + 1
13474
135- return ( {
75+ return {
13676 "correct" : False ,
13777 "message" : Reporter .to_html (self .feedback .message ),
13878 "line_start" : self .feedback .line_info ["line_start" ],
13979 "column_start" : col_start ,
14080 "line_end" : self .feedback .line_info ["line_end" ],
141- "column_end" : self .feedback .line_info ["column_end" ],
142- "tags" : self . tags })
81+ "column_end" : self .feedback .line_info ["column_end" ]
82+ }
14383
14484
14585 else :
0 commit comments