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

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

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

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

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

72 lines
2.6 KiB
Python

"""Tests for file conversion Celery task routes."""
import io
from unittest.mock import MagicMock
class TestConvertTaskRoutes:
def test_pdf_to_word_success(self, client, monkeypatch):
"""Should return 202 with task_id for valid PDF upload."""
mock_task = MagicMock()
mock_task.id = 'convert-pdf-word-id'
monkeypatch.setattr(
'app.routes.convert.validate_actor_file',
lambda f, allowed_types, actor: ('document.pdf', 'pdf'),
)
monkeypatch.setattr(
'app.routes.convert.generate_safe_path',
lambda ext, folder_type: ('convert-pdf-word-id', '/tmp/test.pdf'),
)
monkeypatch.setattr(
'app.routes.convert.convert_pdf_to_word.delay',
MagicMock(return_value=mock_task),
)
data = {'file': (io.BytesIO(b'%PDF-1.4'), 'document.pdf')}
response = client.post(
'/api/convert/pdf-to-word',
data=data,
content_type='multipart/form-data',
)
assert response.status_code == 202
body = response.get_json()
assert body['task_id'] == 'convert-pdf-word-id'
assert 'message' in body
def test_word_to_pdf_success(self, client, monkeypatch):
"""Should return 202 with task_id for valid Word upload."""
mock_task = MagicMock()
mock_task.id = 'convert-word-pdf-id'
monkeypatch.setattr(
'app.routes.convert.validate_actor_file',
lambda f, allowed_types, actor: ('report.docx', 'docx'),
)
monkeypatch.setattr(
'app.routes.convert.generate_safe_path',
lambda ext, folder_type: ('convert-word-pdf-id', '/tmp/test.docx'),
)
monkeypatch.setattr(
'app.routes.convert.convert_word_to_pdf.delay',
MagicMock(return_value=mock_task),
)
data = {'file': (io.BytesIO(b'PK\x03\x04'), 'report.docx')}
response = client.post(
'/api/convert/word-to-pdf',
data=data,
content_type='multipart/form-data',
)
assert response.status_code == 202
body = response.get_json()
assert body['task_id'] == 'convert-word-pdf-id'
def test_pdf_to_word_no_file(self, client):
"""Should return 400 when no file provided."""
response = client.post('/api/convert/pdf-to-word')
assert response.status_code == 400
def test_word_to_pdf_no_file(self, client):
"""Should return 400 when no file provided."""
response = client.post('/api/convert/word-to-pdf')
assert response.status_code == 400