"""Pytest configuration and fixtures.""" import pytest from pathlib import Path import tempfile import os @pytest.fixture def sample_json_file(): """Create a temporary JSON file for testing.""" with tempfile.NamedTemporaryFile(mode="w", suffix=".json", delete=False) as f: import json json.dump({ "name": "test-app", "version": "1.0.0", "debug": True, "port": 8080, "database": { "host": "localhost", "port": 5432 }, "features": ["auth", "api", "logging"] }, f) f.flush() yield f.name os.unlink(f.name) @pytest.fixture def sample_yaml_file(): """Create a temporary YAML file for testing.""" with tempfile.NamedTemporaryFile(mode="w", suffix=".yaml", delete=False) as f: f.write(""" name: test-app version: 1.0.0 debug: true port: 8080 database: host: localhost port: 5432 features: - auth - api - logging """) f.flush() yield f.name os.unlink(f.name) @pytest.fixture def sample_toml_file(): """Create a temporary TOML file for testing.""" with tempfile.NamedTemporaryFile(mode="w", suffix=".toml", delete=False) as f: f.write(""" name = "test-app" version = "1.0.0" debug = true port = 8080 [database] host = "localhost" port = 5432 """) f.flush() yield f.name os.unlink(f.name) @pytest.fixture def sample_ini_file(): """Create a temporary INI file for testing.""" with tempfile.NamedTemporaryFile(mode="w", suffix=".ini", delete=False) as f: f.write(""" [app] name = test-app version = 1.0.0 debug = true [database] host = localhost port = 5432 """) f.flush() yield f.name os.unlink(f.name) @pytest.fixture def temp_dir(): """Create a temporary directory for testing.""" with tempfile.TemporaryDirectory() as tmpdir: yield Path(tmpdir)