95 lines
1.9 KiB
Python
95 lines
1.9 KiB
Python
"""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)
|