ai-code-review-agent / tests /test_static_analyzer.py
Padmanav's picture
fixed lint
a79668c
Raw
History Blame Contribute Delete
1.66 kB
import os
import tempfile
from app.tools.static_analyzer import run_ruff, run_bandit, run_full_analysis
def _make_py_file(tmpdir: str, content: str) -> str:
path = os.path.join(tmpdir, "sample.py")
with open(path, "w") as f:
f.write(content)
return path
def test_run_ruff_clean_file():
with tempfile.TemporaryDirectory() as tmpdir:
_make_py_file(tmpdir, "x = 1\n")
result = run_ruff(tmpdir)
assert result["success"] is True
assert isinstance(result["issues"], list)
def test_run_ruff_detects_issues():
with tempfile.TemporaryDirectory() as tmpdir:
_make_py_file(tmpdir, "import os\nimport sys\nx=1\n")
result = run_ruff(tmpdir)
assert result["success"] is True
def test_run_bandit_clean_file():
with tempfile.TemporaryDirectory() as tmpdir:
_make_py_file(tmpdir, "def add(a, b):\n return a + b\n")
result = run_bandit(tmpdir)
assert result["success"] is True
assert isinstance(result["issues"], list)
def test_run_full_analysis_returns_both():
with tempfile.TemporaryDirectory() as tmpdir:
_make_py_file(tmpdir, "x = 1\n")
result = run_full_analysis(tmpdir)
assert "ruff" in result
assert "bandit" in result
assert "total_issues" in result
assert isinstance(result["total_issues"], int)
def test_run_full_analysis_empty_dir():
with tempfile.TemporaryDirectory() as tmpdir:
result = run_full_analysis(tmpdir)
assert "ruff" in result
assert "bandit" in result
assert "total_issues" in result
assert isinstance(result["total_issues"], int)
assert result["total_issues"] >= 0