Commit 81d72682bfae7b4878a609ffce482db8bf05b3cc
1 parent
96ae3635
Exists in
master
and in
1 other branch
run tests of textarea questions before starting the test.
Showing
2 changed files
with
37 additions
and
10 deletions
Show diff stats
perguntations/templates/review.html
| ... | ... | @@ -97,7 +97,7 @@ |
| 97 | 97 | <div class="row"> |
| 98 | 98 | <label for="nota" class="col-sm-2">Nota:</label> |
| 99 | 99 | <div class="col-sm-10" id="nota"> |
| 100 | - <span class="badge badge-primary">{{ round(t['grade'], 1) }}</span> valores | |
| 100 | + <span class="badge badge-primary">{{ round(t['grade'], 2) }}</span> valores | |
| 101 | 101 | {% if t['state'] == 'QUIT' %} |
| 102 | 102 | (DESISTÊNCIA) |
| 103 | 103 | {% end %} | ... | ... |
perguntations/testfactory.py
| ... | ... | @@ -223,24 +223,51 @@ class TestFactory(dict): |
| 223 | 223 | ''' |
| 224 | 224 | logger.info('Checking if questions can be generated and corrected...') |
| 225 | 225 | for i, (qref, qfact) in enumerate(self['question_factory'].items()): |
| 226 | - logger.info('%4d. %s:', i, qref) | |
| 227 | 226 | try: |
| 228 | 227 | question = qfact.generate() |
| 229 | 228 | except Exception as exc: |
| 230 | 229 | msg = f'Failed to generate "{qref}"' |
| 231 | 230 | raise TestFactoryException(msg) from exc |
| 232 | 231 | else: |
| 233 | - logger.info(' generate Ok') | |
| 232 | + logger.info('%4d. %s: Ok', i, qref) | |
| 233 | + # logger.info(' generate Ok') | |
| 234 | 234 | |
| 235 | 235 | if question['type'] in ('code', 'textarea'): |
| 236 | - try: | |
| 237 | - question.set_answer('') | |
| 238 | - question.correct() | |
| 239 | - except Exception as exc: | |
| 240 | - msg = f'Failed to correct "{qref}"' | |
| 241 | - raise TestFactoryException(msg) from exc | |
| 236 | + if 'tests_right' in question: | |
| 237 | + for i, right_answer in enumerate(question['tests_right']): | |
| 238 | + try: | |
| 239 | + question.set_answer(right_answer) | |
| 240 | + question.correct() | |
| 241 | + except Exception as exc: | |
| 242 | + msg = f'Failed to correct "{qref}"' | |
| 243 | + raise TestFactoryException(msg) from exc | |
| 244 | + | |
| 245 | + if question['grade'] == 1.0: | |
| 246 | + logger.info(' test %i Ok', i) | |
| 247 | + else: | |
| 248 | + logger.error(' TEST %i IS WRONG!!!', i) | |
| 249 | + elif 'tests_wrong' in question: | |
| 250 | + for i, wrong_answer in enumerate(question['tests_wrong']): | |
| 251 | + try: | |
| 252 | + question.set_answer(wrong_answer) | |
| 253 | + question.correct() | |
| 254 | + except Exception as exc: | |
| 255 | + msg = f'Failed to correct "{qref}"' | |
| 256 | + raise TestFactoryException(msg) from exc | |
| 257 | + | |
| 258 | + if question['grade'] < 1.0: | |
| 259 | + logger.info(' test %i Ok', i) | |
| 260 | + else: | |
| 261 | + logger.error(' TEST %i IS WRONG!!!', i) | |
| 242 | 262 | else: |
| 243 | - logger.info(' correct Ok') | |
| 263 | + try: | |
| 264 | + question.set_answer('') | |
| 265 | + question.correct() | |
| 266 | + except Exception as exc: | |
| 267 | + msg = f'Failed to correct "{qref}"' | |
| 268 | + raise TestFactoryException(msg) from exc | |
| 269 | + else: | |
| 270 | + logger.info(' correct Ok but no tests to run') | |
| 244 | 271 | |
| 245 | 272 | # ------------------------------------------------------------------------ |
| 246 | 273 | async def generate(self): | ... | ... |