44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
import pytest
|
|
from pathlib import Path
|
|
import tempfile
|
|
import os
|
|
|
|
from src.git.git import GitRepo, FileChange
|
|
|
|
|
|
class TestGitRepo:
|
|
def test_get_file_language(self):
|
|
repo = GitRepo(Path.cwd())
|
|
assert repo.get_file_language("test.py") == "python"
|
|
assert repo.get_file_language("test.js") == "javascript"
|
|
assert repo.get_file_language("test.go") == "go"
|
|
assert repo.get_file_language("test.rs") == "rust"
|
|
assert repo.get_file_language("test.unknown") == "unknown"
|
|
|
|
def test_get_diff_stats(self):
|
|
repo = GitRepo(Path.cwd())
|
|
diff = """diff --git a/test.py b/test.py
|
|
--- a/test.py
|
|
+++ b/test.py
|
|
@@ -1,3 +1,4 @@
|
|
def hello():
|
|
+ print("hello")
|
|
return True
|
|
- return False
|
|
"""
|
|
additions, deletions = repo.get_diff_stats(diff)
|
|
assert additions == 1
|
|
assert deletions == 1
|
|
|
|
|
|
class TestFileChange:
|
|
def test_file_change_creation(self):
|
|
change = FileChange(
|
|
filename="test.py",
|
|
status="M",
|
|
diff="diff content"
|
|
)
|
|
assert change.filename == "test.py"
|
|
assert change.status == "M"
|
|
assert change.diff == "diff content"
|