"""Tests für Admin-Route.""" from unittest.mock import MagicMock from flask import Flask from src.routes.admin import admin_bp class TestAdminRoute: """Tests für Admin-Route.""" def setup_method(self) -> None: """Erstellt Flask-App mit mocktem QueueHandler.""" self.app = Flask(__name__) mock_qh = MagicMock() mock_qh.queue_size.return_value = 42 mock_qh.redis = MagicMock() mock_qh.redis.smembers.return_value = set() mock_qh.redis.get.return_value = 0 mock_qh.processed_key = "bsn:processed" self.app.queue_handler = mock_qh self.app.register_blueprint(admin_bp, url_prefix="/") self.client = self.app.test_client() def test_get_admin_queue_ergibt_200(self) -> None: """GET /admin/queue → 200 + JSON mit queue_size.""" response = self.client.get("/admin/queue") assert response.status_code == 200 data = response.get_json() assert "queue_size" in data assert data["status"] == "ok" def test_get_admin_queue_queue_size_ist_integer(self) -> None: """GET /admin/queue → queue_size ist Integer.""" response = self.client.get("/admin/queue") data = response.get_json() assert isinstance(data["queue_size"], int) def test_get_admin_stats_ergibt_200(self) -> None: """GET /admin/stats → 200 + version.""" response = self.client.get("/admin/stats") assert response.status_code == 200 data = response.get_json() assert "version" in data assert "status" in data def test_get_admin_stats_json_enhaelt_alle_keys(self) -> None: """GET /admin/stats → JSON enthält alle Keys.""" response = self.client.get("/admin/stats") data = response.get_json() assert "queue_size" in data assert "uptime" in data assert "version" in data