34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
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")
|