@@ -537,9 +537,9 @@ def check(self, context: Context) -> bool:
537
537
self .error ('Invalid grading policy in testdata.yaml' )
538
538
539
539
if self .config ['grading' ] == 'custom' and len (self ._problem .getProblemPart (Graders )._graders ) == 0 :
540
- self ._problem .getProblemPart (Graders ).error (f'{ self } has custom grading but no custom graders provided' )
540
+ self ._problem .getProblemPart (Graders ).fatal (f'{ self } has custom grading but no custom graders provided' )
541
541
if self .config ['grading' ] == 'default' and Graders ._default_grader is None :
542
- self ._problem .getProblemPart (Graders ).error (f'{ self } has default grading but I could not find default grader' )
542
+ self ._problem .getProblemPart (Graders ).fatal (f'{ self } has default grading but I could not find default grader' )
543
543
544
544
if self .config ['grading' ] == 'default' and 'ignore_sample' in self .config ['grader_flags' ].split ():
545
545
if self ._parent is not None :
@@ -1146,7 +1146,7 @@ def check(self, context: Context) -> bool:
1146
1146
for grader in self ._graders :
1147
1147
success , msg = grader .compile ()
1148
1148
if not success :
1149
- self .error (f'Compile error for { grader } ' , msg )
1149
+ self .fatal (f'Compile error for { grader } ' , msg )
1150
1150
return self ._check_res
1151
1151
1152
1152
def grade (
@@ -1251,16 +1251,16 @@ def check(self, context: Context) -> bool:
1251
1251
if self .problem .getMetadata ().legacy_validation == 'default' and self ._validators :
1252
1252
self .error ('There are validator programs but problem.yaml has validation = "default"' )
1253
1253
elif self .problem .getMetadata ().legacy_validation .startswith ('custom' ) and not self ._validators :
1254
- self .error ('problem.yaml specifies custom validator but no validator programs found' )
1254
+ self .fatal ('problem.yaml specifies custom validator but no validator programs found' )
1255
1255
1256
1256
if self .problem .getMetadata ().legacy_validation == 'default' and self ._default_validator is None :
1257
- self .error ('Unable to locate default validator' )
1257
+ self .fatal ('Unable to locate default validator' )
1258
1258
1259
1259
for val in self ._validators [:]:
1260
1260
try :
1261
1261
success , msg = val .compile ()
1262
1262
if not success :
1263
- self .error (f'Compile error for output validator { val } ' , msg )
1263
+ self .fatal (f'Compile error for output validator { val } ' , msg )
1264
1264
except run .ProgramError as e :
1265
1265
self .error (str (e ))
1266
1266
@@ -1743,15 +1743,21 @@ def check(self, context: Context) -> bool:
1743
1743
'validators' : [InputValidators , OutputValidators ],
1744
1744
'graders' : [Graders ],
1745
1745
'data' : [ProblemTestCases ],
1746
- 'submissions' : [Submissions ],
1746
+ 'submissions' : [
1747
+ OutputValidators ,
1748
+ Submissions ,
1749
+ ], # OutputValidators duplicated to fatal() early if we can't find a validator. We should find a cleaner solution
1747
1750
},
1748
1751
FormatVersion .V_2023_07 : { # TODO: Add all the parts
1749
1752
'config' : [ProblemConfig ],
1750
1753
'statement' : [ProblemStatement , Attachments ],
1751
1754
'validators' : [InputValidators , OutputValidators ],
1752
1755
'graders' : [Graders ],
1753
1756
'data' : [ProblemTestCases ],
1754
- 'submissions' : [Submissions ],
1757
+ 'submissions' : [
1758
+ OutputValidators ,
1759
+ Submissions ,
1760
+ ], # OutputValidators duplicated to fatal() early if we can't find a validator. We should find a cleaner solution
1755
1761
},
1756
1762
}
1757
1763
0 commit comments