34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
from syncvito.coordinator import derive_overall_status
|
||
from syncvito.models import TaskRuntimeState
|
||
|
||
|
||
def test_no_active_task_is_red() -> None:
|
||
assert derive_overall_status([], globally_paused=False) == ("paused", "Inaktiv")
|
||
assert derive_overall_status([TaskRuntimeState.PAUSED], globally_paused=False) == ("paused", "Inaktiv")
|
||
|
||
|
||
def test_healthy_active_tasks_are_green() -> None:
|
||
states = [TaskRuntimeState.ACTIVE, TaskRuntimeState.PAUSED]
|
||
assert derive_overall_status(states, globally_paused=False) == ("active", "Bereit")
|
||
|
||
|
||
def test_waiting_lock_has_priority_over_active_task() -> None:
|
||
states = [TaskRuntimeState.ACTIVE, TaskRuntimeState.WAITING_FOR_RELEASE]
|
||
assert derive_overall_status(states, globally_paused=False) == ("error", "Unvollständig – Dateien gesperrt")
|
||
|
||
|
||
def test_waiting_task_does_not_hide_running_sync() -> None:
|
||
assert derive_overall_status([TaskRuntimeState.WAITING_FOR_RELEASE], False, running=True) == (
|
||
"error",
|
||
"Synchronisiert",
|
||
)
|
||
|
||
|
||
def test_error_has_highest_priority() -> None:
|
||
states = [TaskRuntimeState.WAITING_FOR_RELEASE, TaskRuntimeState.ERROR]
|
||
assert derive_overall_status(states, globally_paused=False) == ("error", "Fehler")
|
||
|
||
|
||
def test_global_pause_is_red_without_errors() -> None:
|
||
assert derive_overall_status([TaskRuntimeState.ACTIVE], globally_paused=True) == ("paused", "Pausiert")
|