Files
FusionAGI/tests/test_postgres_backend.py

31 lines
1.0 KiB
Python
Raw Normal View History

"""Tests for PostgresStateBackend graceful degradation.
When psycopg2 is unavailable, all operations are no-ops.
"""
from fusionagi.core.postgres_backend import PostgresStateBackend
from fusionagi.schemas.task import Task, TaskState
def test_graceful_fallback_without_psycopg2():
"""PostgresStateBackend should silently degrade when Postgres is unreachable."""
backend = PostgresStateBackend(dsn="postgresql://invalid:invalid@localhost:1/invalid")
assert backend._available is False
# All reads return None/empty
assert backend.get_task("t1") is None
assert backend.get_task_state("t1") is None
assert backend.get_trace("t1") == []
assert backend.list_tasks() == []
assert backend.count_tasks() == 0
# All writes are no-ops
backend.set_task(Task(task_id="t1", goal="test"))
backend.set_task_state("t1", TaskState.ACTIVE)
backend.append_trace("t1", {"step": 1})
assert backend.delete_task("t1") is False
# Close is safe
backend.close()
assert backend._available is False