Add test suite and configuration
Some checks failed
CI / test (push) Has been cancelled

This commit is contained in:
2026-02-01 07:59:09 +00:00
parent fdc8597226
commit a985d6e937

View File

@@ -1,53 +1,53 @@
import pytest
from src.models.data_structures import Author, Commit
from datetime import datetime
from unittest.mock import MagicMock, patch
@pytest.fixture
def sample_commit():
"""Create a sample commit for testing."""
return Commit(
sha="abc123def456",
message="Add new feature",
author="Test User",
author_email="test@example.com",
timestamp=datetime(2024, 1, 15, 10, 30, 0),
lines_added=50,
lines_deleted=10,
files_changed=["src/new_feature.py", "tests/test_new_feature.py"],
is_merge=False,
is_revert=False,
)
def mock_commit():
"""Create a mock commit object."""
commit = MagicMock()
commit.sha = "abc123"
commit.message = "Test commit"
commit.author_name = "John Doe"
commit.author_email = "john@test.com"
commit.committed_datetime = datetime(2024, 1, 15, 10, 30, 0)
commit.author_datetime = datetime(2024, 1, 15, 10, 30, 0)
commit.additions = 50
commit.deletions = 10
commit.files_changed = ["src/main.py", "tests/test.py"]
commit.parents = []
commit.is_merge = False
commit.is_revert = False
commit.lines_changed_count = 60
return commit
@pytest.fixture
def sample_author():
"""Create a sample author for testing."""
return Author(
name="Test User",
email="test@example.com",
commit_count=42,
lines_added=5000,
lines_deleted=1000,
)
def mock_repo():
"""Create a mock git repository."""
repo = MagicMock()
return repo
@pytest.fixture
def sample_commits():
"""Create a list of sample commits for testing."""
"""Create a list of sample commits."""
commits = []
for i in range(10):
commit = Commit(
sha=f"sha{i}123{i}",
message=f"Commit {i}",
author="Test User",
author_email="test@example.com",
timestamp=datetime(2024, 1, 15, 10 + i, 30, 0),
lines_added=10 * i,
lines_deleted=2 * i,
files_changed=[f"file{i}.py"],
is_merge=False,
is_revert=False,
)
commit = MagicMock()
commit.sha = f"sha{i}"
commit.message = f"Commit {i}"
commit.author_name = "John Doe"
commit.author_email = "john@test.com"
commit.committed_datetime = datetime(2024, 1, i + 1, 10, 0, 0)
commit.author_datetime = datetime(2024, 1, i + 1, 10, 0, 0)
commit.additions = 10 * i
commit.deletions = 5 * i
commit.files_changed = [f"src/file{i}.py"]
commit.parents = []
commit.is_merge = False
commit.is_revert = False
commit.lines_changed_count = 15 * i
commits.append(commit)
return commits