first commit
This commit is contained in:
103
backend/tests/conftest.py
Normal file
103
backend/tests/conftest.py
Normal file
@@ -0,0 +1,103 @@
|
||||
"""Pytest configuration and fixtures"""
|
||||
|
||||
import pytest
|
||||
import asyncio
|
||||
from typing import AsyncGenerator
|
||||
from unittest.mock import AsyncMock, MagicMock, patch
|
||||
|
||||
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine, async_sessionmaker
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def event_loop():
|
||||
"""Create event loop for async tests"""
|
||||
loop = asyncio.get_event_loop_policy().new_event_loop()
|
||||
yield loop
|
||||
loop.close()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_db_session():
|
||||
"""Mock database session"""
|
||||
session = AsyncMock(spec=AsyncSession)
|
||||
session.add = MagicMock()
|
||||
session.commit = AsyncMock()
|
||||
session.execute = AsyncMock()
|
||||
session.refresh = AsyncMock()
|
||||
session.close = AsyncMock()
|
||||
return session
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_top500_response():
|
||||
"""Sample TOP500 API response"""
|
||||
return {
|
||||
"items": [
|
||||
{
|
||||
"rank": 1,
|
||||
"system_name": "Frontier",
|
||||
"country": "USA",
|
||||
"city": "Oak Ridge",
|
||||
"latitude": 35.9322,
|
||||
"longitude": -84.3108,
|
||||
"manufacturer": "HPE",
|
||||
"r_max": 1102000.0,
|
||||
"r_peak": 1685000.0,
|
||||
"power": 21510.0,
|
||||
"cores": 8730112,
|
||||
"interconnect": "Slingshot 11",
|
||||
"os": "CentOS",
|
||||
},
|
||||
{
|
||||
"rank": 2,
|
||||
"system_name": "Fugaku",
|
||||
"country": "Japan",
|
||||
"city": "Kobe",
|
||||
"latitude": 34.6913,
|
||||
"longitude": 135.1830,
|
||||
"manufacturer": "Fujitsu",
|
||||
"r_max": 442010.0,
|
||||
"r_peak": 537212.0,
|
||||
"power": 29899.0,
|
||||
"cores": 7630848,
|
||||
"interconnect": "Tofu interconnect D",
|
||||
"os": "RHEL",
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_huggingface_response():
|
||||
"""Sample Hugging Face API response"""
|
||||
return {
|
||||
"models": [
|
||||
{
|
||||
"id": "bert-base-uncased",
|
||||
"author": "google",
|
||||
"description": "BERT base model",
|
||||
"likes": 25000,
|
||||
"downloads": 5000000,
|
||||
"language": "en",
|
||||
"tags": ["transformer", "bert"],
|
||||
"pipeline_tag": "feature-extraction",
|
||||
"library_name": "transformers",
|
||||
"createdAt": "2024-01-15T10:00:00Z",
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_alert_data():
|
||||
"""Sample alert data"""
|
||||
return {
|
||||
"id": 1,
|
||||
"severity": "warning",
|
||||
"status": "active",
|
||||
"datasource_id": 2,
|
||||
"datasource_name": "Epoch AI",
|
||||
"message": "API response time > 30s",
|
||||
"created_at": "2024-01-20T09:30:00Z",
|
||||
"acknowledged_by": None,
|
||||
}
|
||||
Reference in New Issue
Block a user