slobs-cli/tests/teardown.py
onyx-and-iris 377a9df824 add pre_test script
ensure teardown removes the test scenes
2025-06-11 13:34:31 +01:00

43 lines
1.1 KiB
Python

import os
import anyio
from anyio import create_task_group
from pyslobs import ConnectionConfig, ScenesService, SlobsConnection, StreamingService
async def cleanup(conn: SlobsConnection):
ss = ScenesService(conn)
scenes = await ss.get_scenes()
for scene in scenes:
if scene.name.startswith("slobs-test-scene-"):
await ss.remove_scene(scene.id)
ss = StreamingService(conn)
current_state = await ss.get_model()
if current_state.streaming_status != "offline":
await ss.toggle_streaming()
if current_state.replay_buffer_status != "offline":
await ss.stop_replay_buffer()
if current_state.recording_status != "offline":
await ss.toggle_recording()
conn.close()
async def main():
conn = SlobsConnection(
ConnectionConfig(
domain=os.environ["SLOBS_DOMAIN"],
port=59650,
token=os.environ["SLOBS_TOKEN"],
)
)
async with create_task_group() as tg:
tg.start_soon(conn.background_processing)
tg.start_soon(cleanup, conn)
if __name__ == "__main__":
anyio.run(main)