feat: Phase 3 Tasks 23-25 + Quality-Gate-Fixes
Task 23: Worker-Intake-Pipeline verbinden
- ergebnis-Feld in Submission/Payload
- worker.py extrahiert + worker_loop refactor
- test_worker.py mit VerarbeiteSubmission/WorkerLoop tests
Task 24: Admin-Stats mit echten Daten
- processed_total, uptime, error_rate, VERSION
- admin_health mit Redis-Live-Daten
Task 25: E2E-Integrationstest + worker_refaktorisiert
Quality-Gate-Fixes:
- consumername Collision: 'worker-1' -> f'worker-{id(self)}'
- fakeredis block=0 Timeout fix
- WhatsApp/Telegram webhook payload fixes
- test_telegram/integration/e2e/refaktorisiert
- handler.py recovery nach corrupted Patch
This commit is contained in:
+10
-4
@@ -13,8 +13,13 @@ class TestAdminRoute:
|
||||
def setup_method(self) -> None:
|
||||
"""Erstellt Flask-App mit mocktem QueueHandler."""
|
||||
self.app = Flask(__name__)
|
||||
self.app.queue_handler = MagicMock()
|
||||
self.app.queue_handler.queue_size.return_value = 42
|
||||
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()
|
||||
|
||||
@@ -33,11 +38,12 @@ class TestAdminRoute:
|
||||
assert isinstance(data["queue_size"], int)
|
||||
|
||||
def test_get_admin_stats_ergibt_200(self) -> None:
|
||||
"""GET /admin/stats → 200 + version '0.1.0'."""
|
||||
"""GET /admin/stats → 200 + version."""
|
||||
response = self.client.get("/admin/stats")
|
||||
assert response.status_code == 200
|
||||
data = response.get_json()
|
||||
assert data["version"] == "0.1.0"
|
||||
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."""
|
||||
|
||||
Reference in New Issue
Block a user