refactor state manager (#1237)

* refactor state manager

* refactor state manager

* refactor state manager

* refactor state manager
This commit is contained in:
Henry Ruhs
2026-09-12 11:02:14 +02:00
committed by GitHub
parent 864038b8f7
commit fb21d1d1b5
60 changed files with 285 additions and 80 deletions
+50 -18
View File
@@ -1,35 +1,67 @@
from typing import Union
from typing import Iterator
import pytest
from facefusion.processors.types import ProcessorState
from facefusion.state_manager import STATE_SET, get_item, init_item, set_item
from facefusion.types import AppContext, State
def get_state(app_context : AppContext) -> Union[State, ProcessorState]:
return STATE_SET.get(app_context)
def clear_state(app_context : AppContext) -> None:
STATE_SET[app_context] = {} #type:ignore[typeddict-item]
from facefusion import store_creator
from facefusion.session_context import resolve_local_id, set_session_id
from facefusion.state_manager import STATE_SET, clear, get_item, get_state, init, init_item, set_item, set_state
@pytest.fixture(scope = 'function', autouse = True)
def before_each() -> None:
clear_state('cli')
clear_state('api')
def before_each() -> Iterator[None]:
local_id = resolve_local_id()
set_session_id(local_id)
clear()
store_creator.delete_content(STATE_SET, 'session-a')
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_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('cli').get('video_memory_strategy') == 'tolerant'
assert get_state('api').get('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'
assert get_state('api').get('video_memory_strategy') is None