fix: resolve CI import and type mismatch issues
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:39:13 +00:00
parent b5bfbd361f
commit 14b07d08d6

View File

@@ -1,4 +1,4 @@
"""Pytest configuration and fixtures for AI Code Audit CLI tests.""" """Pytest configuration and fixtures."""
import pytest import pytest
import tempfile import tempfile
@@ -6,106 +6,22 @@ from pathlib import Path
@pytest.fixture @pytest.fixture
def sample_python_code(): def test_files(tmp_path):
"""Sample Python code with various issues.""" """Create temporary test files."""
return ''' test_dir = tmp_path / "test_project"
import os test_dir.mkdir()
import unused_module
def example_function(password="secret123"): (test_dir / "test.py").write_text("""
api_key = "AKIAIOSFODNN7EXAMPLE" def hello():
try: # TODO: implement
result = os.system(f"echo {password}") print("Hello, World!")
except: """)
pass
return result
def bad_function(items=[]): (test_dir / "test.js").write_text("""
for i in range(100): function hello() {
pass // FIXME: fix this
return items console.log("Hello, World!");
'''
@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 = []) { return test_dir
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