Initial upload of ai-code-audit-cli project
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

This commit is contained in:
2026-02-03 10:30:16 +00:00
parent 92ca2a7e1b
commit 97de567556

111
tests/conftest.py Normal file
View File

@@ -0,0 +1,111 @@
"""Pytest configuration and fixtures for AI Code Audit CLI tests."""
import pytest
import tempfile
from pathlib import Path
@pytest.fixture
def sample_python_code():
"""Sample Python code with various issues."""
return '''
import os
import unused_module
def example_function(password="secret123"):
api_key = "AKIAIOSFODNN7EXAMPLE"
try:
result = os.system(f"echo {password}")
except:
pass
return result
def bad_function(items=[]):
for i in range(100):
pass
return items
'''
@pytest.fixture
def clean_python_code():
"""Sample clean Python code without issues."""
return '''
def calculate_sum(numbers: list[int]) -> int:
"""Calculate the sum of a list of numbers."""
total = 0
for num in numbers:
total += num
return total
if __name__ == "__main__":
numbers = [1, 2, 3, 4, 5]
print(calculate_sum(numbers))
'''
@pytest.fixture
def sample_javascript_code():
"""Sample JavaScript code with various issues."""
return '''
const apiKey = "sk-1234567890abcdef";
const password = "secret123";
function processData(data) {
try {
const result = eval(data.userInput);
return result;
} catch (e) {
// Silent catch
}
}
function badExample(items = []) {
for (let i = 0; i < 100; i++) {
console.log(i);
}
}
'''
@pytest.fixture
def temp_directory():
"""Create a temporary directory with test files."""
with tempfile.TemporaryDirectory() as tmpdir:
yield Path(tmpdir)
@pytest.fixture
def test_files(temp_directory, sample_python_code, clean_python_code, sample_javascript_code):
"""Create test files in temp directory."""
(temp_directory / "bad_code.py").write_text(sample_python_code)
(temp_directory / "good_code.py").write_text(clean_python_code)
(temp_directory / "bad_code.js").write_text(sample_javascript_code)
return temp_directory
@pytest.fixture
def mock_scan_result():
"""Create a mock scan result for testing."""
from src.core.models import ScanResult, Issue, IssueCategory, SeverityLevel
result = ScanResult(files_scanned=3, target_path="/test")
result.add_issue(Issue(
severity=SeverityLevel.HIGH,
category=IssueCategory.SECURITY,
file_path="/test/file.py",
line_number=5,
message="Hardcoded credential detected",
suggestion="Use environment variables",
scanner_name="test",
))
result.add_issue(Issue(
severity=SeverityLevel.MEDIUM,
category=IssueCategory.ANTI_PATTERN,
file_path="/test/file.py",
line_number=10,
message="Mutable default argument detected",
suggestion="Use None as default",
scanner_name="test",
))
return result