ميزة: إضافة خدمة تحليلات لتكامل Google Analytics اختبار: تحديث اختبارات خدمة واجهة برمجة التطبيقات (API) لتعكس تغييرات نقاط النهاية إصلاح: تعديل خدمة واجهة برمجة التطبيقات (API) لدعم تحميل ملفات متعددة ومصادقة المستخدم ميزة: تطبيق مخزن مصادقة باستخدام Zustand لإدارة المستخدمين إصلاح: تحسين إعدادات Nginx لتعزيز الأمان ودعم التحليلات
55 lines
1.9 KiB
Python
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"
|