import unittest from datetime import datetime from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine from database import Base from services.stream_service import StreamService class StreamCreateTest(unittest.IsolatedAsyncioTestCase): async def asyncSetUp(self): self.engine = create_async_engine("sqlite+aiosqlite:///:memory:") async with self.engine.begin() as connection: await connection.run_sync(Base.metadata.create_all) self.session_factory = async_sessionmaker(self.engine, expire_on_commit=False) async def asyncTearDown(self): await self.engine.dispose() async def test_create_stream_accepts_frontend_iso_timestamp(self): payload = { "title": "Create flow regression", "description": None, "cover_url": None, "scheduled_at": "2026-08-12T21:49:12.000Z", } async with self.session_factory() as session: stream = await StreamService(session).create_stream(**payload) self.assertEqual(stream.title, payload["title"]) self.assertIsInstance(stream.scheduled_at, datetime) self.assertEqual(stream.scheduled_at.isoformat(), "2026-08-12T21:49:12")