From 5109e7b8d8c4ae701ff94d79891a5c9e5cdc5f81 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Sun, 1 Feb 2026 20:17:00 +0000 Subject: [PATCH] Add test files and configuration --- tests/conftest.py | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 tests/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..b4e6351 --- /dev/null +++ b/tests/conftest.py @@ -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("\n\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