diff --git a/issue_metrics.py b/issue_metrics.py index 055618a..4dcd7b6 100644 --- a/issue_metrics.py +++ b/issue_metrics.py @@ -171,15 +171,16 @@ def evaluate_markdown_file_size(output_file: str) -> None: """ Evaluate the size of the markdown file and split it, if it is too large. """ - file_name_without_extension = Path(output_file).stem + output_file_name = output_file if output_file else "issue_metrics.md" + file_name_without_extension = Path(output_file_name).stem max_char_count = 65535 - if markdown_too_large_for_issue_body(output_file, max_char_count): - split_markdown_file(output_file, max_char_count) - shutil.move(output_file, f"{file_name_without_extension}_full.md") - shutil.move(f"{file_name_without_extension}_0.md", output_file) + if markdown_too_large_for_issue_body(output_file_name, max_char_count): + split_markdown_file(output_file_name, max_char_count) + shutil.move(output_file_name, f"{file_name_without_extension}_full.md") + shutil.move(f"{file_name_without_extension}_0.md", output_file_name) print( f"Issue metrics markdown file is too large for GitHub issue body and has been \ -split into multiple files. ie. {output_file}, {file_name_without_extension}_1.md, etc. \ +split into multiple files. ie. {output_file_name}, {file_name_without_extension}_1.md, etc. \ The full file is saved as {file_name_without_extension}_full.md\n\ See https://github.com/github/issue-metrics/blob/main/docs/dealing-with-large-issue-metrics.md" ) diff --git a/test_issue_metrics.py b/test_issue_metrics.py index 4f67d39..728e671 100644 --- a/test_issue_metrics.py +++ b/test_issue_metrics.py @@ -482,6 +482,18 @@ def test_get_per_issue_metrics_with_discussion_with_hide_envs(self): class TestEvaluateMarkdownFileSize(unittest.TestCase): """Test suite for the evaluate_markdown_file_size function.""" + @patch("issue_metrics.markdown_too_large_for_issue_body") + def test_markdown_too_large_for_issue_body_called_with_empty_output_file( + self, mock_evaluate + ): + """ + Test that the function uses the output_file. + """ + mock_evaluate.return_value = False + evaluate_markdown_file_size("") + + mock_evaluate.assert_called_with("issue_metrics.md", 65535) + @patch("issue_metrics.markdown_too_large_for_issue_body") def test_markdown_too_large_for_issue_body_called_with_output_file( self, mock_evaluate