def complete_run(self):
        # if test fails print output from failed task
        for result in self.failures:
            self.write("#"*40 + "\n")
            msg = '%s - taskid:%s\n' % (result['exception'].get_name(),
                                        result['task'].name)
            self.write(msg)
            self.write(result['exception'].get_msg())
            self.write("\n")
            task = result['task']
            if self.show_out:
                out = "".join([a.out for a in task.actions if a.out])
                self.write("%s\n" % out)
            if self.show_err:
                err = "".join([a.err for a in task.actions if a.err])
                self.write("%s\n" % err)

        if self.runtime_errors:
            self.write("#"*40 + "\n")
            self.write("Execution aborted.\n")
            self.write("\n".join(self.runtime_errors))
            self.write("\n")
Returns all practices which are due for user among cards in cardlist.
dataset/ETHPy150Open pydoit/doit/doit/reporter.py/ConsoleReporter.complete_run--crossover with--dataset/ETHPy150Open DummyDivision/Tsune/deckglue/models.py/DelayablePractice.get_all_due_in_card_id_list