Files
git-insights-cli/tests/test_formatters.py
7000pctAUTO 80adeb45a7
Some checks failed
CI / test (push) Has been cancelled
Add test suite and configuration
2026-02-01 07:59:10 +00:00

55 lines
1.7 KiB
Python

import pytest
from datetime import datetime
from unittest.mock import MagicMock
class TestJSONFormatter:
"""Test JSON formatter."""
def test_format_dict(self):
"""Test formatting dictionary data."""
from src.formatters import JSONFormatter
data = {"key": "value", "number": 42}
result = JSONFormatter.format(data)
assert '"key": "value"' in result
assert '"number": 42' in result
def test_format_empty(self):
"""Test formatting empty data."""
from src.formatters import JSONFormatter
result = JSONFormatter.format({})
assert result == "{}"
class TestMarkdownFormatter:
"""Test Markdown formatter."""
def test_format_basic(self):
"""Test basic Markdown formatting."""
from src.formatters import MarkdownFormatter
result = MarkdownFormatter.format(MagicMock())
assert "# Git Insights Report" in result
def test_format_with_analysis(self):
"""Test formatting with analysis data."""
from src.formatters import MarkdownFormatter
from src.models import CommitAnalysis, Author
mock_analysis = MagicMock()
mock_analysis.commit_analysis = CommitAnalysis(
total_commits=100,
unique_authors=5,
commits_by_hour={},
commits_by_day={},
commits_by_week={},
commits_by_month={},
top_authors=[Author("John", "john@test.com", 50, 1000, 500)],
average_commits_per_day=3.3,
)
mock_analysis.velocity_analysis = None
mock_analysis.code_churn_analysis = None
result = MarkdownFormatter.format(mock_analysis)
assert "Total Commits" in result
assert "100" in result