33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""Structural tests for the trash blueprint + delete-flip contracts."""
|
|
import inspect
|
|
|
|
|
|
def test_trash_blueprint_registered():
|
|
from fabledassistant.routes.trash import trash_bp
|
|
assert trash_bp.name == "trash"
|
|
assert trash_bp.url_prefix == "/api/trash"
|
|
|
|
|
|
def test_trash_blueprint_registered_in_app():
|
|
from fabledassistant.app import create_app
|
|
app = create_app()
|
|
assert "trash" in app.blueprints
|
|
|
|
|
|
def test_trash_handlers_callable():
|
|
from fabledassistant.routes import trash as trash_routes
|
|
for name in ("list_trash", "restore_batch", "purge_batch"):
|
|
assert callable(getattr(trash_routes, name))
|
|
|
|
|
|
def test_trash_service_surface():
|
|
from fabledassistant.services import trash as svc
|
|
for fn_name in ("delete", "restore", "purge", "list_trash", "purge_expired", "alive"):
|
|
assert hasattr(svc, fn_name), f"trash service missing {fn_name}"
|
|
|
|
|
|
def test_delete_service_signature():
|
|
from fabledassistant.services.trash import delete
|
|
params = inspect.signature(delete).parameters
|
|
assert "user_id" in params and "entity_type" in params and "entity_id" in params
|