Add remaining test files: test_fixes, test_llm, test_generate, test_report, test_utils
This commit is contained in:
87
tests/test_generate.py
Normal file
87
tests/test_generate.py
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
import pytest
|
||||||
|
from pathlib import Path
|
||||||
|
import tempfile
|
||||||
|
import json
|
||||||
|
|
||||||
|
from config_auditor.generate import ConfigGenerator
|
||||||
|
|
||||||
|
|
||||||
|
class TestConfigGenerator:
|
||||||
|
def test_detect_node_project(self):
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
(Path(tmpdir) / "package.json").write_text('{"name": "test"}')
|
||||||
|
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
result = generator.detect_project_type(Path(tmpdir))
|
||||||
|
|
||||||
|
assert result == "node"
|
||||||
|
|
||||||
|
def test_detect_python_project(self):
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
(Path(tmpdir) / "pyproject.toml").write_text('[tool.poetry]\nname = "test"')
|
||||||
|
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
result = generator.detect_project_type(Path(tmpdir))
|
||||||
|
|
||||||
|
assert result == "python"
|
||||||
|
|
||||||
|
def test_detect_typescript_project(self):
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
(Path(tmpdir) / "tsconfig.json").write_text('{"compilerOptions": {}}')
|
||||||
|
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
result = generator.detect_project_type(Path(tmpdir))
|
||||||
|
|
||||||
|
assert result == "typescript"
|
||||||
|
|
||||||
|
def test_detect_from_source_files(self):
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
src = Path(tmpdir) / "src"
|
||||||
|
src.mkdir()
|
||||||
|
(src / "main.ts").write_text("const x = 1;")
|
||||||
|
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
result = generator.detect_project_type(Path(tmpdir))
|
||||||
|
|
||||||
|
assert result == "typescript"
|
||||||
|
|
||||||
|
def test_generate_from_node_template(self):
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
config = generator.generate_from_template("node", Path("/tmp"))
|
||||||
|
|
||||||
|
assert "name" in config
|
||||||
|
assert "version" in config
|
||||||
|
assert "scripts" in config
|
||||||
|
assert "test" in config["scripts"]
|
||||||
|
|
||||||
|
def test_generate_from_python_template(self):
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
config = generator.generate_from_template("python", Path("/tmp"))
|
||||||
|
|
||||||
|
assert "tool" in config
|
||||||
|
assert "poetry" in config["tool"]
|
||||||
|
|
||||||
|
def test_generate_from_typescript_template(self):
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
config = generator.generate_from_template("typescript", Path("/tmp"))
|
||||||
|
|
||||||
|
assert "compilerOptions" in config
|
||||||
|
assert config["compilerOptions"]["strict"] is True
|
||||||
|
|
||||||
|
def test_analyze_project(self):
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
(Path(tmpdir) / "package.json").write_text('{"name": "test"}')
|
||||||
|
(Path(tmpdir) / "index.js").write_text("console.log('test');")
|
||||||
|
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
result = generator.analyze_project(Path(tmpdir))
|
||||||
|
|
||||||
|
assert result["type"] == "node"
|
||||||
|
assert "package.json" in result["files"]
|
||||||
|
assert "index.js" in result["files"]
|
||||||
|
|
||||||
|
def test_unknown_template_raises_error(self):
|
||||||
|
generator = ConfigGenerator()
|
||||||
|
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
generator.generate_from_template("unknown", Path("/tmp"))
|
||||||
Reference in New Issue
Block a user