first commit - MVE Incrementables Parser microservice with FastAPI, JWT, Celery, Redis
This commit is contained in:
57
tests/conftest.py
Normal file
57
tests/conftest.py
Normal file
@@ -0,0 +1,57 @@
|
||||
"""Pytest configuration and fixtures."""
|
||||
import pytest
|
||||
from fastapi.testclient import TestClient
|
||||
from app.main import app
|
||||
from app.core.config import Settings, get_settings
|
||||
import bcrypt
|
||||
|
||||
|
||||
# Test settings
|
||||
TEST_PASSWORD = "test_password_123"
|
||||
TEST_PASSWORD_HASH = bcrypt.hashpw(TEST_PASSWORD.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
|
||||
|
||||
|
||||
def get_test_settings():
|
||||
"""Override settings for testing."""
|
||||
return Settings(
|
||||
auth_username="testuser",
|
||||
auth_password_hash=TEST_PASSWORD_HASH,
|
||||
jwt_secret="test-secret-key-for-testing-only",
|
||||
jwt_expires_minutes=60,
|
||||
max_file_mb=10,
|
||||
log_level="DEBUG",
|
||||
service_name="mve-incrementables-parser",
|
||||
service_version="1.0.0"
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def test_settings():
|
||||
"""Provide test settings."""
|
||||
return get_test_settings()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def client(test_settings):
|
||||
"""Create a test client with overridden settings."""
|
||||
app.dependency_overrides[get_settings] = lambda: test_settings
|
||||
with TestClient(app) as test_client:
|
||||
yield test_client
|
||||
app.dependency_overrides.clear()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def auth_token(client):
|
||||
"""Get authentication token for testing."""
|
||||
response = client.post(
|
||||
"/auth/login",
|
||||
json={"username": "testuser", "password": TEST_PASSWORD}
|
||||
)
|
||||
assert response.status_code == 200
|
||||
return response.json()["access_token"]
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def auth_headers(auth_token):
|
||||
"""Get authorization headers for testing."""
|
||||
return {"Authorization": f"Bearer {auth_token}"}
|
||||
Reference in New Issue
Block a user