Files
ai-code-audit-cli/tests/test_scanner.py
7000pctAUTO 8cddaab324
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / test (3.9) (push) Has been cancelled
CI / build (push) Has been cancelled
CI / release (push) Has been cancelled
fix: resolve CI import and type mismatch issues
2026-02-03 10:39:16 +00:00

66 lines
1.9 KiB
Python

"""Tests for code scanner."""
import pytest
from pathlib import Path
from src.core.scanner import CodeScanner
from src.core.models import IssueCategory, SeverityLevel
class TestCodeScanner:
"""Tests for CodeScanner class."""
def test_scanner_initialization(self):
"""Test scanner creates empty issue list."""
scanner = CodeScanner()
assert scanner.issues == []
def test_supported_extensions(self):
"""Test supported file extensions."""
scanner = CodeScanner()
assert ".py" in scanner.SUPPORTED_EXTENSIONS
assert ".js" in scanner.SUPPORTED_EXTENSIONS
assert ".ts" in scanner.SUPPORTED_EXTENSIONS
def test_scan_single_file(self, tmp_path):
"""Test scanning a single file."""
test_file = tmp_path / "test.py"
test_file.write_text("""
def hello():
# TODO: implement
print("Hello")
""")
scanner = CodeScanner()
result = scanner.scan(test_file)
assert result.files_scanned == 1
assert len(result.issues) == 1
assert result.issues[0].category == IssueCategory.MAINTAINABILITY
assert result.issues[0].severity == SeverityLevel.LOW
def test_scan_directory(self, tmp_path):
"""Test scanning a directory."""
test_dir = tmp_path / "project"
test_dir.mkdir()
(test_dir / "test.py").write_text("# TODO: test")
(test_dir / "test.js").write_text("// FIXME: fix")
scanner = CodeScanner()
result = scanner.scan(test_dir)
assert result.files_scanned == 2
assert len(result.issues) == 2
def test_unsupported_file(self, tmp_path):
"""Test skipping unsupported files."""
test_file = tmp_path / "test.txt"
test_file.write_text("TODO: something")
scanner = CodeScanner()
result = scanner.scan(test_file)
assert result.files_scanned == 0
assert len(result.issues) == 0