Skip to content

Commit cf5b0a1

Browse files
committed
fix : stdout in case of error
1 parent ebedf5c commit cf5b0a1

File tree

1 file changed

+28
-37
lines changed

1 file changed

+28
-37
lines changed

mrpython/gui/Console.py

Lines changed: 28 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ def write_report(self, status, report, exec_mode):
247247

248248
has_convention_error = False
249249

250+
# show convention errors, if any
250251
for error in report.convention_errors:
251252
if error.severity == "error" and not has_convention_error:
252253
self.write(tr("-----\nPython101 convention errors:\n-----\n"), tags='info')
@@ -259,45 +260,35 @@ def write_report(self, status, report, exec_mode):
259260
self.write(str(error), tags=(error.severity, hyper, hyper_spec))
260261
self.write("\n")
261262

262-
if not status:
263-
has_compilation_error = False
264-
for error in report.compilation_errors:
265-
if error.severity == "error" and not has_compilation_error:
266-
self.write(tr("\n-----\nCompilation errors (Python interpreter):\n-----\n"), tags='info')
267-
has_compilation_error = True
268-
hyper, hyper_spec = self.hyperlinks.add(ErrorCallback(self, error))
269-
self.write("\n")
270-
self.write(str(error), tags=(error.severity, hyper, hyper_spec))
271-
self.write("\n")
272-
273-
274-
has_execution_error = False
275-
for error in report.execution_errors:
276-
if error.severity == "error" and not has_execution_error:
277-
self.write(tr("\n-----\nExecution errors (Python interpreter):\n-----\n"), tags='info')
278-
has_execution_error = True
279-
280-
hyper, hyper_spec = self.hyperlinks.add(ErrorCallback(self, error))
281-
self.write("\n")
282-
self.write(str(error), tags=(error.severity, hyper, hyper_spec))
283-
self.write("\n")
284-
285-
else:
286-
has_execution_error = False
287-
for error in report.execution_errors:
288-
if error.severity == "error" and not has_execution_error:
289-
self.write(tr("\n-----\nExecution errors (Python interpreter):\n-----\n"), tags='info')
290-
has_execution_error = True
291-
292-
hyper, hyper_spec = self.hyperlinks.add(ErrorCallback(self, error))
293-
self.write("\n")
294-
self.write(str(error), tags=(error.severity, hyper, hyper_spec))
295-
self.write("\n")
263+
# show compilation errors, if any
264+
has_compilation_error = False
265+
for error in report.compilation_errors:
266+
if error.severity == "error" and not has_compilation_error:
267+
self.write(tr("\n-----\nCompilation errors (Python interpreter):\n-----\n"), tags='info')
268+
has_compilation_error = True
269+
hyper, hyper_spec = self.hyperlinks.add(ErrorCallback(self, error))
270+
self.write("\n")
271+
self.write(str(error), tags=(error.severity, hyper, hyper_spec))
272+
self.write("\n")
296273

274+
# write the stdout that has been generated
275+
self.write(str(report.output), tags=('stdout'))
276+
277+
# show execution errors, if any
278+
has_execution_error = False
279+
for error in report.execution_errors:
280+
if error.severity == "error" and not has_execution_error:
281+
self.write(tr("\n-----\nExecution errors (Python interpreter):\n-----\n"), tags='info')
282+
has_execution_error = True
283+
284+
hyper, hyper_spec = self.hyperlinks.add(ErrorCallback(self, error))
285+
self.write("\n")
286+
self.write(str(error), tags=(error.severity, hyper, hyper_spec))
287+
self.write("\n")
297288

298-
self.write(str(report.output), tags=('stdout'))
299-
if report.result is not None:
300-
self.write(repr(report.result), tags=('normal'))
289+
# show evaluation result
290+
if status and report.result is not None:
291+
self.write(repr(report.result), tags=('normal'))
301292

302293
if exec_mode == 'exec' and status and self.mode == tr('student') and report.nb_defined_funs > 0:
303294
if report.nb_passed_tests > 1:

0 commit comments

Comments
 (0)