Skip to content

Commit 1fb87f8

Browse files
authored
Merge pull request #435 from py-cov-action/long-numbers
2 parents 6471543 + 1dda329 commit 1fb87f8

File tree

3 files changed

+33
-5
lines changed

3 files changed

+33
-5
lines changed

coverage_comment/template.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,16 @@ def delta(val: int) -> str:
7474
return f"({sign(val)}{val})"
7575

7676

77+
def compact(val: int) -> str:
78+
if val < 1_000:
79+
return str(val)
80+
if val < 10_000:
81+
return f"{val / 1_000:.1f}k"
82+
if val < 1_000_000:
83+
return f"{val / 1_000:.0f}k"
84+
return f"{val / 1_000_000:.0f}M"
85+
86+
7787
def remove_exponent(val: decimal.Decimal) -> decimal.Decimal:
7888
# From https://docs.python.org/3/library/decimal.html#decimal-faq
7989
return (
@@ -136,6 +146,7 @@ def get_comment_markdown(
136146
env.filters["get_evolution_color"] = badge.get_evolution_badge_color
137147
env.filters["generate_badge"] = badge.get_static_badge_url
138148
env.filters["pluralize"] = pluralize
149+
env.filters["compact"] = compact
139150
env.filters["file_url"] = functools.partial(
140151
get_file_url, repo_name=repo_name, pr_number=pr_number
141152
)

coverage_comment/template_files/comment.md.j2

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
{% set color = "007ec6" -%}
4646
{% set message = statements_count %}
4747
{% endif -%}
48-
<td align="center"><a href="{{ path | file_url }}"><img title="{{ text }}" src="{{ statements_count | string | generate_badge(message=(message | delta), color=color) }}"></a></td>
48+
<td align="center"><a href="{{ path | file_url }}"><img title="{{ text }}" src="{{ statements_count | compact | generate_badge(message=(message | delta), color=color) }}"></a></td>
4949

5050
{%- endmacro -%}
5151

@@ -65,7 +65,7 @@
6565
{%- set message = missing_lines_count -%}
6666
{%- endif -%}
6767
{%- set color = message | get_evolution_color(up_is_good=false) -%}
68-
<td align="center"><a href="{{ path | file_url }}"><img title="{{ text }}" src="{{ missing_lines_count | string | generate_badge(message=(message | delta), color=color) }}"></a></td>
68+
<td align="center"><a href="{{ path | file_url }}"><img title="{{ text }}" src="{{ missing_lines_count | compact | generate_badge(message=(message | delta), color=color) }}"></a></td>
6969

7070
{%- endmacro -%}
7171

@@ -80,10 +80,10 @@
8080
{%- set text = "This PR doesn't change the coverage rate in " ~ path ~ ", which is " ~ percent_covered | pct ~ " (" ~ covered_statements_count ~ "/" ~ statements_count ~ ")." -%}
8181
{%- endif -%}
8282
{%- set color = coverage_diff | get_evolution_color() -%}
83-
{%- set message = "(" ~ previous_covered_statements_count ~ "/" ~ previous_statements_count ~ " > " ~ covered_statements_count ~ "/" ~ statements_count ~ ")" -%}
83+
{%- set message = "(" ~ previous_covered_statements_count | compact ~ "/" ~ previous_statements_count | compact ~ " > " ~ covered_statements_count | compact ~ "/" ~ statements_count | compact ~ ")" -%}
8484
{%- else -%}
8585
{%- set text = "The coverage rate of " ~ path ~ " is " ~ percent_covered | pct ~ " (" ~ covered_statements_count ~ "/" ~ statements_count ~ "). The file did not seem to exist on the base branch." -%}
86-
{%- set message = "(" ~ covered_statements_count ~ "/" ~ statements_count ~ ")" -%}
86+
{%- set message = "(" ~ covered_statements_count | compact ~ "/" ~ statements_count | compact ~ ")" -%}
8787
{%- set color = percent_covered | x100 | get_badge_color -%}
8888
{%- endif -%}
8989
<td align="center"><a href="{{ path | file_url }}"><img title="{{ text }}" src="{{ percent_covered | pct(precision=0) | generate_badge(message=message, color=color) }}"></a></td>
@@ -94,7 +94,7 @@
9494
{% if added_statements_count -%}
9595
{% set text = "In this PR, " ~ (added_statements_count) ~ " new statements are added to " ~ path ~ ", " ~ covered_statements_count ~ " of which are covered (" ~ (percent_covered | pct) ~ ")." -%}
9696
{% set label = (percent_covered | pct(precision=0)) -%}
97-
{% set message = "(" ~ covered_statements_count ~ "/" ~ added_statements_count ~ ")" -%}
97+
{% set message = "(" ~ covered_statements_count | compact ~ "/" ~ added_statements_count | compact ~ ")" -%}
9898
{%- set color = (percent_covered | x100 | get_badge_color()) -%}
9999
{% else -%}
100100
{% set text = "This PR does not seem to add statements to " ~ path ~ "." -%}

tests/unit/test_template.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -836,3 +836,20 @@ def test_get_log_message():
836836
subproject_id="foo",
837837
)
838838
assert result.startswith("Coverage info for foo:")
839+
840+
841+
@pytest.mark.parametrize(
842+
"value, expected",
843+
[
844+
(0, "0"),
845+
(1, "1"),
846+
(999, "999"),
847+
(1_042, "1.0k"),
848+
(9_900, "9.9k"),
849+
(12_345, "12k"),
850+
(999_999, "1000k"),
851+
(1_234_567, "1M"),
852+
],
853+
)
854+
def test_compact(value, expected):
855+
assert template.compact(value) == expected

0 commit comments

Comments
 (0)