From b265518084e33d520c19dae9dfdb9cfc17536f2d Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 12 Aug 2026 21:58:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=9B=B4=E6=92=AD=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=97=B6=E9=97=B4=E5=9B=9E=E5=BD=92=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/tests/test_stream_create.py | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 backend/tests/test_stream_create.py diff --git a/backend/tests/test_stream_create.py b/backend/tests/test_stream_create.py new file mode 100644 index 0000000..150c9d8 --- /dev/null +++ b/backend/tests/test_stream_create.py @@ -0,0 +1,33 @@ +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")