Newer
Older
cortex-hub / ai-hub / integration_tests / test_misc.py
import pytest
import httpx

@pytest.mark.asyncio
async def test_root_endpoint(http_client):
    """
    Tests if the root endpoint is alive and returns the correct status message.
    """
    print("\n--- Running test_root_endpoint ---")
    response = await http_client.get("/")
    assert response.status_code == 200
    assert response.json() == {"status": "AI Model Hub is running!"}
    print("✅ Root endpoint test passed.")

# @pytest.mark.asyncio
# async def test_create_speech_stream(http_client):
#     """
#     Tests the /speech endpoint for a successful audio stream response.
#     """
#     print("\n--- Running test_create_speech_stream ---")
#     url = "/speech"
#     payload = {"text": "Hello, world!"}

#     # The `stream=True` parameter tells httpx to not read the entire response body
#     # at once. We'll handle it manually to check for content.
#     async with http_client.stream("POST", url, json=payload) as response:
#         assert response.status_code == 200, f"Speech stream request failed. Response: {response.text}"
#         assert response.headers.get("content-type") == "audio/wav"

#         # Check that the response body is not empty by iterating over chunks.
#         content_length = 0
#         async for chunk in response.aiter_bytes():
#             content_length += len(chunk)
            
#         assert content_length > 0
#     print("✅ TTS stream test passed.")