def __str__(self): """Get the download as a string. Example: foo.pdf [699.2kB/s|0.34|16%|4.253/25.124] """ speed = utils.format_size(self.stats.speed, suffix='B/s') down = utils.format_size(self.stats.done, suffix='B') perc = self.stats.percentage() remaining = self.stats.remaining_time() if self.error_msg is None: errmsg = "" else: errmsg = " - {}".format(self.error_msg) if all(e is None for e in [perc, remaining, self.stats.total]): return ('{index}: {name} [{speed:>10}|{down}]{errmsg}'.format( index=self.index, name=self.basename, speed=speed, down=down, errmsg=errmsg)) perc = round(perc) if remaining is None: remaining = '?' else: remaining = utils.format_seconds(remaining) total = utils.format_size(self.stats.total, suffix='B') if self.done: return ('{index}: {name} [{perc:>2}%|{total}]{errmsg}'.format( index=self.index, name=self.basename, perc=perc, total=total, errmsg=errmsg)) else: return ('{index}: {name} [{speed:>10}|{remaining:>5}|{perc:>2}%|' '{down}/{total}]{errmsg}'.format( index=self.index, name=self.basename, speed=speed, remaining=remaining, perc=perc, down=down, total=total, errmsg=errmsg))
def __str__(self): """Get the download as a string. Example: foo.pdf [699.2kB/s|0.34|16%|4.253/25.124] """ speed = utils.format_size(self._speed, suffix='B/s') down = utils.format_size(self._bytes_done, suffix='B') perc = self._percentage() remaining = self._remaining_time() if all(e is None for e in (perc, remaining, self._bytes_total)): return ('{name} [{speed:>10}|{down}]'.format( name=self.basename, speed=speed, down=down)) if perc is None: perc = '??' else: perc = round(perc) if remaining is None: remaining = '?' else: remaining = utils.format_seconds(remaining) total = utils.format_size(self._bytes_total, suffix='B') return ('{name} [{speed:>10}|{remaining:>5}|{perc:>2}%|' '{down}/{total}]'.format(name=self.basename, speed=speed, remaining=remaining, perc=perc, down=down, total=total))
def test_format_seconds(self, seconds, out): """Test format_seconds with several tests.""" assert utils.format_seconds(seconds) == out
def test_format_seconds(self): """Test format_seconds with several tests.""" for seconds, out in self.TESTS: with self.subTest(seconds=seconds): self.assertEqual(utils.format_seconds(seconds), out)