diff --git a/coverage_comment/files.py b/coverage_comment/files.py index 5e36bca5..c3ce4e8c 100644 --- a/coverage_comment/files.py +++ b/coverage_comment/files.py @@ -59,6 +59,7 @@ def apply(self): def compute_files( line_rate: decimal.Decimal, raw_coverage_data: dict, + coverage_path: pathlib.Path, minimum_green: decimal.Decimal, minimum_orange: decimal.Decimal, http_session: httpx.Client, @@ -81,6 +82,7 @@ def compute_files( contents=compute_datafile( raw_coverage_data=raw_coverage_data, line_rate=line_rate, + coverage_path=coverage_path, ), ), WriteFile( @@ -92,8 +94,16 @@ def compute_files( ] -def compute_datafile(raw_coverage_data: dict, line_rate: decimal.Decimal) -> str: - return json.dumps({"coverage": float(line_rate), "raw_data": raw_coverage_data}) +def compute_datafile( + raw_coverage_data: dict, line_rate: decimal.Decimal, coverage_path: pathlib.Path +) -> str: + return json.dumps( + { + "coverage": float(line_rate), + "raw_data": raw_coverage_data, + "coverage_path": str(coverage_path), + } + ) def parse_datafile(contents) -> decimal.Decimal: diff --git a/coverage_comment/main.py b/coverage_comment/main.py index a1928951..7be583e8 100644 --- a/coverage_comment/main.py +++ b/coverage_comment/main.py @@ -305,6 +305,7 @@ def save_coverage_data_files( operations: list[files.Operation] = files.compute_files( line_rate=coverage.info.percent_covered, raw_coverage_data=raw_coverage_data, + coverage_path=config.COVERAGE_PATH, minimum_green=config.MINIMUM_GREEN, minimum_orange=config.MINIMUM_ORANGE, http_session=http_session, diff --git a/tests/end_to_end/test_all.py b/tests/end_to_end/test_all.py index 39053c9f..aaad3d76 100644 --- a/tests/end_to_end/test_all.py +++ b/tests/end_to_end/test_all.py @@ -93,6 +93,7 @@ def test_public_repo( assert "coverage" in data assert "raw_data" in data assert "meta" in data["raw_data"] + assert "coverage_path" in data endpoint = client.get( f"{raw_url_prefix}/endpoint.json", follow_redirects=True diff --git a/tests/unit/test_files.py b/tests/unit/test_files.py index 325130f3..bc467398 100644 --- a/tests/unit/test_files.py +++ b/tests/unit/test_files.py @@ -32,6 +32,7 @@ def test_compute_files(session): result = files.compute_files( line_rate=decimal.Decimal("0.1234"), raw_coverage_data={"foo": ["bar", "bar2"]}, + coverage_path=pathlib.Path("."), minimum_green=decimal.Decimal("25"), minimum_orange=decimal.Decimal("70"), http_session=session, @@ -43,7 +44,7 @@ def test_compute_files(session): ), files.WriteFile( path=pathlib.Path("data.json"), - contents='{"coverage": 12.34, "raw_data": {"foo": ["bar", "bar2"]}}', + contents='{"coverage": 12.34, "raw_data": {"foo": ["bar", "bar2"]}, "coverage_path": "."}', ), files.WriteFile(path=pathlib.Path("badge.svg"), contents="foo"), ] @@ -55,8 +56,9 @@ def test_compute_datafile(): files.compute_datafile( line_rate=decimal.Decimal("12.34"), raw_coverage_data={"meta": {"version": "5.5"}}, + coverage_path=pathlib.Path("./src/code"), ) - == """{"coverage": 12.34, "raw_data": {"meta": {"version": "5.5"}}}""" + == """{"coverage": 12.34, "raw_data": {"meta": {"version": "5.5"}}, "coverage_path": "src/code"}""" )