mirror of
https://github.com/facefusion/facefusion.git
synced 2026-09-22 15:30:46 +02:00
refactor state manager (#1237)
* refactor state manager * refactor state manager * refactor state manager * refactor state manager
This commit is contained in:
+50
-18
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user