Files
SaaS-PDF/backend/tests/test_flowchart_tasks.py
Your Name 0ad2ba0f02 ميزة: تحديث صفحات الخصوصية والشروط مع تاريخ آخر تحديث ثابت وفترة احتفاظ ديناميكية بالملفات
ميزة: إضافة خدمة تحليلات لتكامل Google Analytics

اختبار: تحديث اختبارات خدمة واجهة برمجة التطبيقات (API) لتعكس تغييرات نقاط النهاية

إصلاح: تعديل خدمة واجهة برمجة التطبيقات (API) لدعم تحميل ملفات متعددة ومصادقة المستخدم

ميزة: تطبيق مخزن مصادقة باستخدام Zustand لإدارة المستخدمين

إصلاح: تحسين إعدادات Nginx لتعزيز الأمان ودعم التحليلات
2026-03-07 11:14:05 +02:00

55 lines
1.9 KiB
Python

"""Tests for flowchart task routes."""
import io
from unittest.mock import MagicMock
class TestFlowchartTaskRoutes:
def test_extract_flowchart_dispatches_task(self, client, monkeypatch):
"""Should dispatch extraction task for uploaded PDF."""
mock_task = MagicMock()
mock_task.id = "flow-task-id"
mock_delay = MagicMock(return_value=mock_task)
monkeypatch.setattr(
"app.routes.flowchart.validate_actor_file",
lambda f, allowed_types, actor: ("manual.pdf", "pdf"),
)
monkeypatch.setattr(
"app.routes.flowchart.generate_safe_path",
lambda ext: ("flow-task-id", "/tmp/test.pdf"),
)
monkeypatch.setattr(
"app.routes.flowchart.extract_flowchart_task.delay",
mock_delay,
)
response = client.post(
"/api/flowchart/extract",
data={"file": (io.BytesIO(b"%PDF-1.4"), "manual.pdf")},
content_type="multipart/form-data",
)
assert response.status_code == 202
body = response.get_json()
assert body["task_id"] == "flow-task-id"
args = mock_delay.call_args[0]
assert args[0] == "/tmp/test.pdf"
assert args[1] == "flow-task-id"
assert args[2] == "manual.pdf"
def test_extract_sample_dispatches_task(self, client, monkeypatch):
"""Should dispatch sample extraction task without file upload."""
mock_task = MagicMock()
mock_task.id = "sample-flow-task-id"
monkeypatch.setattr(
"app.routes.flowchart.extract_sample_flowchart_task.delay",
MagicMock(return_value=mock_task),
)
response = client.post("/api/flowchart/extract-sample")
assert response.status_code == 202
body = response.get_json()
assert body["task_id"] == "sample-flow-task-id"