Files
facefusion/tests/test_state_manager.py
T
Henry Ruhs 106dc7a348 fork and join sessions (#1239)
* introduce fork and join session, fix inference manager race condition

* destroy stream on DELETE
2026-09-12 15:45:30 +02:00

85 lines
2.1 KiB
Python

from datetime import datetime
from typing import Iterator
import pytest
from facefusion import session_manager, store_creator
from facefusion.session_context import resolve_local_id, set_session_id
from facefusion.state_manager import STATE_SET, clear, clone_state, get_item, get_state, init, init_item, set_item, set_state
@pytest.fixture(scope = 'function', autouse = True)
def before_each() -> Iterator[None]:
local_id = resolve_local_id()
set_session_id(local_id)
clear()
store_creator.delete_content(STATE_SET, 'session-a')
store_creator.delete_content(STATE_SET, 'session-a1')
session_manager.clear_session('session-a1')
yield
set_session_id(local_id)
def test_init() -> None:
init_item('video_memory_strategy', 'tolerant')
set_session_id('session-a')
assert get_state() is None
init()
set_item('video_memory_strategy', 'strict')
assert get_state() == { 'video_memory_strategy': 'strict' }
set_session_id(resolve_local_id())
assert get_state() == { 'video_memory_strategy': 'tolerant' }
def test_get_state() -> None:
init_item('video_memory_strategy', 'tolerant')
assert get_state() == { 'video_memory_strategy': 'tolerant' }
def test_set_state() -> None:
set_state({ 'video_memory_strategy': 'strict' })
assert get_state() == { 'video_memory_strategy': 'strict' }
def test_clone_state() -> None:
init_item('video_memory_strategy', 'tolerant')
session_manager.set_session('session-a1', { 'owner_id': resolve_local_id(), 'created_at': datetime.now() })
set_session_id('session-a1')
clone_state()
set_item('video_memory_strategy', 'strict')
assert get_state() == { 'video_memory_strategy': 'strict' }
set_session_id(resolve_local_id())
assert get_state() == { 'video_memory_strategy': 'tolerant' }
def test_clear() -> None:
init_item('video_memory_strategy', 'tolerant')
clear()
assert get_state() == {}
def test_init_item() -> None:
init_item('video_memory_strategy', 'tolerant')
assert get_state().get('video_memory_strategy') == 'tolerant'
def test_get_item_and_set_item() -> None:
set_item('video_memory_strategy', 'tolerant')
assert get_item('video_memory_strategy') == 'tolerant'