57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
"""Quick Test Verification - ServiceManagerWeb
|
|
|
|
Smoke tests para verificar que el setup de tests de integración funciona correctamente.
|
|
"""
|
|
|
|
import pytest
|
|
from httpx import AsyncClient
|
|
|
|
|
|
@pytest.mark.integration
|
|
class TestSetupVerification:
|
|
async def test_client_fixture_works(self, client: AsyncClient):
|
|
assert client is not None
|
|
assert str(client.base_url) == "http://test"
|
|
|
|
async def test_database_connection(self, db_session):
|
|
from sqlalchemy import text
|
|
|
|
result = await db_session.execute(text("SELECT 1"))
|
|
assert result.scalar() == 1
|
|
|
|
async def test_tenant_fixture_creates_tenant(self, test_tenant):
|
|
assert test_tenant.name == "Test Company"
|
|
assert test_tenant.slug == "test-company"
|
|
|
|
async def test_user_fixtures_work(self, test_admin_user, test_agent_user, test_client_user):
|
|
assert test_admin_user.role.value == "ADMIN"
|
|
assert test_agent_user.role.value == "AGENT"
|
|
assert test_client_user.role.value == "CLIENT_USER"
|
|
|
|
async def test_auth_token_generation(self, admin_token: str):
|
|
assert isinstance(admin_token, str)
|
|
assert len(admin_token) > 20
|
|
|
|
async def test_health_endpoint(self, client: AsyncClient):
|
|
response = await client.get("/health")
|
|
assert response.status_code == 200
|
|
assert response.json()["status"] == "healthy"
|
|
|
|
|
|
@pytest.mark.integration
|
|
class TestBasicEndpoints:
|
|
async def test_health_endpoint_detailed(self, client: AsyncClient):
|
|
response = await client.get("/v1/health/detailed")
|
|
assert response.status_code in (200, 503)
|
|
|
|
async def test_login_endpoint_exists(self, client: AsyncClient):
|
|
response = await client.post(
|
|
"/v1/auth/login",
|
|
json={
|
|
"email": "nonexistent@test.com",
|
|
"password": "wrong",
|
|
"tenant_slug": "nonexistent",
|
|
},
|
|
)
|
|
assert response.status_code in (401, 404, 422)
|