def finished(self, task, n): """Pretty prints a status report after the Task completes. task: a Task object n: Index in sequence of completed tasks. """ error = ', '.join(task.failures) tstamp = time.asctime().split()[3] # Current time if color.has_colors(sys.stdout): progress = color.c("[%s]" % color.B(n)) success = color.g("[%s]" % color.B("SUCCESS")) failure = color.r("[%s]" % color.B("FAILURE")) stderr = color.r("Stderr: ") error = color.r(color.B(error)) else: progress = "[%s]" % n success = "[SUCCESS]" failure = "[FAILURE]" stderr = "Stderr: " host = task.pretty_host if not task.quiet: if task.failures: print(' '.join((progress, tstamp, failure, host, error))) else: print(' '.join((progress, tstamp, success, host))) # NOTE: The extra flushes are to ensure that the data is output in # the correct order with the C implementation of io. if task.outputbuffer: sys.stdout.flush() try: sys.stdout.buffer.write(task.outputbuffer) sys.stdout.flush() except AttributeError: sys.stdout.write(task.outputbuffer) if task.errorbuffer: sys.stdout.write(stderr) # Flush the TextIOWrapper before writing to the binary buffer. sys.stdout.flush() try: sys.stdout.buffer.write(task.errorbuffer) except AttributeError: sys.stdout.write(task.errorbuffer)
def report(self, n): """Pretty prints a status report after the Task completes.""" error = ', '.join(self.failures) tstamp = time.asctime().split()[3] # Current time if color.has_colors(sys.stdout): progress = color.c("[%s]" % color.B(n)) success = color.g("[%s]" % color.B("SUCCESS")) failure = color.r("[%s]" % color.B("FAILURE")) stderr = color.r("Stderr: ") error = color.r(color.B(error)) else: progress = "[%s]" % n success = "[SUCCESS]" failure = "[FAILURE]" stderr = "Stderr: " if self.port: host = '%s:%s' % (self.host, self.port) else: host = self.host if self.failures: print(' '.join((progress, tstamp, failure, host, error))) else: print(' '.join((progress, tstamp, success, host))) # NOTE: The extra flushes are to ensure that the data is output in # the correct order with the C implementation of io. if self.outputbuffer: sys.stdout.flush() try: sys.stdout.buffer.write(self.outputbuffer) sys.stdout.flush() except AttributeError: sys.stdout.write(self.outputbuffer) if self.errorbuffer: sys.stdout.write(stderr) # Flush the TextIOWrapper before writing to the binary buffer. sys.stdout.flush() try: sys.stdout.buffer.write(self.errorbuffer) except AttributeError: sys.stdout.write(self.errorbuffer)
def print_task_report(task): sequence = task.sequence errors = ', '.join(task.failures) if has_colors(sys.stdout): sequence = c("[%s]" % B(sequence)) success = g("[%s]" % B("SUCCESS")) failure = r("[%s]" % B("FAILURE")) stderr = r("Stderr: ") errors = r(B(errors)) else: sequence = "[%s]" % sequence success = "[SUCCESS]" failure = "[FAILURE]" stderr = "Stderr: " if task.failures: status = failure else: status = success print(' '.join((sequence, get_timestamp(), status, task.pretty_host, errors))) # NOTE: The extra flushes are to ensure that the data is output in # the correct order with the C implementation of io. if task.outputbuffer: sys.stdout.flush() try: sys.stdout.buffer.write(task.outputbuffer) sys.stdout.flush() except AttributeError: sys.stdout.write(task.outputbuffer) if task.errorbuffer: sys.stdout.write(stderr) # Flush the TextIOWrapper before writing to the binary buffer. sys.stdout.flush() try: sys.stdout.buffer.write(task.errorbuffer) except AttributeError: sys.stdout.write(task.errorbuffer)