forked from platformio/platformio-core
Refactor "humanize_duration_time" to "00:00:00.000" format
This commit is contained in:
@ -132,8 +132,8 @@ def process_env(ctx, name, config, environments, targets, upload_port, silent,
|
|||||||
|
|
||||||
ep = EnvironmentProcessor(ctx, name, config, targets, upload_port, silent,
|
ep = EnvironmentProcessor(ctx, name, config, targets, upload_port, silent,
|
||||||
verbose, jobs)
|
verbose, jobs)
|
||||||
result = {"env": name, "elapsed": time(), "succeeded": ep.process()}
|
result = {"env": name, "duration": time(), "succeeded": ep.process()}
|
||||||
result['elapsed'] = time() - result['elapsed']
|
result['duration'] = time() - result['duration']
|
||||||
|
|
||||||
# print footer on error or when is not unit testing
|
# print footer on error or when is not unit testing
|
||||||
if not is_test_running and (not silent or not result['succeeded']):
|
if not is_test_running and (not silent or not result['succeeded']):
|
||||||
@ -164,7 +164,7 @@ def print_processing_footer(result):
|
|||||||
util.print_labeled_bar(
|
util.print_labeled_bar(
|
||||||
"[%s] Took %.2f seconds" %
|
"[%s] Took %.2f seconds" %
|
||||||
((click.style("FAILED", fg="red", bold=True) if is_failed else
|
((click.style("FAILED", fg="red", bold=True) if is_failed else
|
||||||
click.style("SUCCESS", fg="green", bold=True)), result['elapsed']),
|
click.style("SUCCESS", fg="green", bold=True)), result['duration']),
|
||||||
is_error=is_failed)
|
is_error=is_failed)
|
||||||
|
|
||||||
|
|
||||||
@ -172,10 +172,10 @@ def print_processing_summary(results):
|
|||||||
tabular_data = []
|
tabular_data = []
|
||||||
succeeded_nums = 0
|
succeeded_nums = 0
|
||||||
failed_nums = 0
|
failed_nums = 0
|
||||||
elapsed = 0
|
duration = 0
|
||||||
|
|
||||||
for result in results:
|
for result in results:
|
||||||
elapsed += result.get("elapsed", 0)
|
duration += result.get("duration", 0)
|
||||||
if result.get("succeeded") is False:
|
if result.get("succeeded") is False:
|
||||||
failed_nums += 1
|
failed_nums += 1
|
||||||
status_str = click.style("FAILED", fg="red")
|
status_str = click.style("FAILED", fg="red")
|
||||||
@ -187,19 +187,19 @@ def print_processing_summary(results):
|
|||||||
|
|
||||||
tabular_data.append(
|
tabular_data.append(
|
||||||
(click.style(result['env'], fg="cyan"), status_str,
|
(click.style(result['env'], fg="cyan"), status_str,
|
||||||
util.humanize_elapsed_time(result.get("elapsed"))))
|
util.humanize_duration_time(result.get("duration"))))
|
||||||
|
|
||||||
click.echo()
|
click.echo()
|
||||||
click.echo(tabulate(tabular_data,
|
click.echo(tabulate(tabular_data,
|
||||||
headers=[
|
headers=[
|
||||||
click.style(s, bold=True)
|
click.style(s, bold=True)
|
||||||
for s in ("Environment", "Status", "Time")
|
for s in ("Environment", "Status", "Duration")
|
||||||
]),
|
]),
|
||||||
err=failed_nums)
|
err=failed_nums)
|
||||||
|
|
||||||
util.print_labeled_bar(
|
util.print_labeled_bar(
|
||||||
"%s%d succeeded in %s" %
|
"%s%d succeeded in %s" %
|
||||||
("%d failed, " % failed_nums if failed_nums else "", succeeded_nums,
|
("%d failed, " % failed_nums if failed_nums else "", succeeded_nums,
|
||||||
util.humanize_elapsed_time(elapsed)),
|
util.humanize_duration_time(duration)),
|
||||||
is_error=failed_nums,
|
is_error=failed_nums,
|
||||||
fg="red" if failed_nums else "green")
|
fg="red" if failed_nums else "green")
|
||||||
|
@ -139,10 +139,10 @@ def cli( # pylint: disable=redefined-builtin
|
|||||||
result = {
|
result = {
|
||||||
"env": envname,
|
"env": envname,
|
||||||
"test": testname,
|
"test": testname,
|
||||||
"elapsed": time(),
|
"duration": time(),
|
||||||
"succeeded": tp.process()
|
"succeeded": tp.process()
|
||||||
}
|
}
|
||||||
result['elapsed'] = time() - result['elapsed']
|
result['duration'] = time() - result['duration']
|
||||||
results.append(result)
|
results.append(result)
|
||||||
|
|
||||||
print_processing_footer(result)
|
print_processing_footer(result)
|
||||||
@ -179,21 +179,20 @@ def print_processing_footer(result):
|
|||||||
util.print_labeled_bar(
|
util.print_labeled_bar(
|
||||||
"[%s] Took %.2f seconds" %
|
"[%s] Took %.2f seconds" %
|
||||||
((click.style("FAILED", fg="red", bold=True) if is_failed else
|
((click.style("FAILED", fg="red", bold=True) if is_failed else
|
||||||
click.style("PASSED", fg="green", bold=True)), result['elapsed']),
|
click.style("PASSED", fg="green", bold=True)), result['duration']),
|
||||||
is_error=is_failed)
|
is_error=is_failed)
|
||||||
|
|
||||||
|
|
||||||
def print_testing_summary(results):
|
def print_testing_summary(results):
|
||||||
click.echo()
|
click.echo()
|
||||||
# util.print_labeled_bar("SUMMARY")
|
|
||||||
|
|
||||||
tabular_data = []
|
tabular_data = []
|
||||||
succeeded_nums = 0
|
succeeded_nums = 0
|
||||||
failed_nums = 0
|
failed_nums = 0
|
||||||
elapsed = 0
|
duration = 0
|
||||||
|
|
||||||
for result in results:
|
for result in results:
|
||||||
elapsed += result.get("elapsed", 0)
|
duration += result.get("duration", 0)
|
||||||
if result.get("succeeded") is False:
|
if result.get("succeeded") is False:
|
||||||
failed_nums += 1
|
failed_nums += 1
|
||||||
status_str = click.style("FAILED", fg="red")
|
status_str = click.style("FAILED", fg="red")
|
||||||
@ -205,18 +204,19 @@ def print_testing_summary(results):
|
|||||||
|
|
||||||
tabular_data.append(
|
tabular_data.append(
|
||||||
(result['test'], click.style(result['env'], fg="cyan"), status_str,
|
(result['test'], click.style(result['env'], fg="cyan"), status_str,
|
||||||
util.humanize_elapsed_time(result.get("elapsed"))))
|
util.humanize_duration_time(result.get("duration"))))
|
||||||
|
|
||||||
click.echo(tabulate(tabular_data,
|
click.echo(tabulate(tabular_data,
|
||||||
headers=[
|
headers=[
|
||||||
click.style(s, bold=True)
|
click.style(s, bold=True)
|
||||||
for s in ("Test", "Environment", "Status", "Time")
|
for s in ("Test", "Environment", "Status",
|
||||||
|
"Duration")
|
||||||
]),
|
]),
|
||||||
err=failed_nums)
|
err=failed_nums)
|
||||||
|
|
||||||
util.print_labeled_bar(
|
util.print_labeled_bar(
|
||||||
"%s%d succeeded in %s" %
|
"%s%d succeeded in %s" %
|
||||||
("%d failed, " % failed_nums if failed_nums else "", succeeded_nums,
|
("%d failed, " % failed_nums if failed_nums else "", succeeded_nums,
|
||||||
util.humanize_elapsed_time(elapsed)),
|
util.humanize_duration_time(duration)),
|
||||||
is_error=failed_nums,
|
is_error=failed_nums,
|
||||||
fg="red" if failed_nums else "green")
|
fg="red" if failed_nums else "green")
|
||||||
|
@ -455,20 +455,16 @@ def print_labeled_bar(label, is_error=False, fg=None):
|
|||||||
err=is_error)
|
err=is_error)
|
||||||
|
|
||||||
|
|
||||||
def humanize_elapsed_time(total):
|
def humanize_duration_time(duration):
|
||||||
total = total or 0
|
if duration is None:
|
||||||
constants = ((3600 * 24, "day"), (3600, "hour"), (60, "minute"),
|
return duration
|
||||||
(1, "second"))
|
duration = duration * 1000
|
||||||
tokens = []
|
tokens = []
|
||||||
for coef, name in constants:
|
for multiplier in (3600000, 60000, 1000, 1):
|
||||||
t = (math.floor if total > 60 else round)(total / coef)
|
fraction = math.floor(duration / multiplier)
|
||||||
if t == 0:
|
tokens.append(int(round(duration) if multiplier == 1 else fraction))
|
||||||
continue
|
duration -= fraction * multiplier
|
||||||
tokens.append("%d %s%s" % (t, name, "s" if t > 1 else ""))
|
return "{:02d}:{:02d}:{:02d}.{:03d}".format(*tokens)
|
||||||
total -= t * coef
|
|
||||||
if len(tokens) > 1:
|
|
||||||
tokens[-1] = "and %s" % tokens[-1]
|
|
||||||
return ", ".join(tokens)
|
|
||||||
|
|
||||||
|
|
||||||
def get_original_version(version):
|
def get_original_version(version):
|
||||||
|
Reference in New Issue
Block a user