Add test files and configuration
This commit is contained in:
96
tests/conftest.py
Normal file
96
tests/conftest.py
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
"""Pytest configuration and fixtures for auto-gitignore tests."""
|
||||||
|
|
||||||
|
import tempfile
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import Generator
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def temp_project_dir() -> Generator[Path, None, None]:
|
||||||
|
"""Create a temporary directory for testing."""
|
||||||
|
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||||
|
yield Path(tmp_dir)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def python_project(temp_project_dir: Path) -> Path:
|
||||||
|
"""Create a mock Python project structure."""
|
||||||
|
(temp_project_dir / "requirements.txt").write_text("requests==2.28.0\n")
|
||||||
|
(temp_project_dir / "setup.py").write_text("from setuptools import setup\n")
|
||||||
|
src_dir = temp_project_dir / "src"
|
||||||
|
src_dir.mkdir(exist_ok=True)
|
||||||
|
(src_dir / "main.py").write_text("print('hello')\n")
|
||||||
|
return temp_project_dir
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def nodejs_project(temp_project_dir: Path) -> Path:
|
||||||
|
"""Create a mock Node.js project structure."""
|
||||||
|
(temp_project_dir / "package.json").write_text('{"name": "test", "version": "1.0.0"}\n')
|
||||||
|
src_dir = temp_project_dir / "src"
|
||||||
|
src_dir.mkdir(exist_ok=True)
|
||||||
|
(src_dir / "index.js").write_text("console.log('hello')\n")
|
||||||
|
return temp_project_dir
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def django_project(temp_project_dir: Path) -> Path:
|
||||||
|
"""Create a mock Django project structure."""
|
||||||
|
(temp_project_dir / "requirements.txt").write_text("django==4.0.0\n")
|
||||||
|
(temp_project_dir / "manage.py").write_text("#!/usr/bin/env python\n")
|
||||||
|
myproject_dir = temp_project_dir / "myproject"
|
||||||
|
myproject_dir.mkdir(exist_ok=True)
|
||||||
|
(myproject_dir / "__init__.py").write_text("")
|
||||||
|
(myproject_dir / "settings.py").write_text("")
|
||||||
|
(myproject_dir / "urls.py").write_text("")
|
||||||
|
return temp_project_dir
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def react_project(temp_project_dir: Path) -> Path:
|
||||||
|
"""Create a mock React project structure."""
|
||||||
|
(temp_project_dir / "package.json").write_text('{"name": "test", "dependencies": {"react": "^18.0.0"}}\n')
|
||||||
|
src_dir = temp_project_dir / "src"
|
||||||
|
src_dir.mkdir(exist_ok=True)
|
||||||
|
(src_dir / "App.js").write_text("import React from 'react'\n")
|
||||||
|
return temp_project_dir
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def mixed_project(temp_project_dir: Path) -> Path:
|
||||||
|
"""Create a mock mixed-language project structure."""
|
||||||
|
(temp_project_dir / "requirements.txt").write_text("django==4.0.0\n")
|
||||||
|
(temp_project_dir / "package.json").write_text('{"name": "test", "dependencies": {"react": "^18.0.0"}}\n')
|
||||||
|
backend_dir = temp_project_dir / "src" / "backend"
|
||||||
|
backend_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
(backend_dir / "main.py").write_text("print('hello')\n")
|
||||||
|
frontend_dir = temp_project_dir / "src" / "frontend"
|
||||||
|
frontend_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
(frontend_dir / "App.js").write_text("import React from 'react'\n")
|
||||||
|
return temp_project_dir
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def vscode_project(temp_project_dir: Path) -> Path:
|
||||||
|
"""Create a mock project with VSCode configuration."""
|
||||||
|
vscode_dir = temp_project_dir / ".vscode"
|
||||||
|
vscode_dir.mkdir(exist_ok=True)
|
||||||
|
(vscode_dir / "settings.json").write_text("{}\n")
|
||||||
|
src_dir = temp_project_dir / "src"
|
||||||
|
src_dir.mkdir(exist_ok=True)
|
||||||
|
(src_dir / "main.py").write_text("print('hello')\n")
|
||||||
|
return temp_project_dir
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def jetbrains_project(temp_project_dir: Path) -> Path:
|
||||||
|
"""Create a mock project with JetBrains IDE configuration."""
|
||||||
|
idea_dir = temp_project_dir / ".idea"
|
||||||
|
idea_dir.mkdir(exist_ok=True)
|
||||||
|
(idea_dir / "modules.xml").write_text("<project>\n</project>\n")
|
||||||
|
src_dir = temp_project_dir / "src"
|
||||||
|
src_dir.mkdir(exist_ok=True)
|
||||||
|
(src_dir / "main.py").write_text("print('hello')\n")
|
||||||
|
return temp_project_dir
|
||||||
Reference in New Issue
Block a user