- Set up main entry point for React application. - Create About, Home, NotFound, Privacy, and Terms pages with SEO support. - Implement API service for file uploads and task management. - Add global styles using Tailwind CSS. - Create utility functions for SEO and text processing. - Configure Vite for development and production builds. - Set up Nginx configuration for serving frontend and backend. - Add scripts for cleanup of expired files and sitemap generation. - Implement deployment script for production environment.
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""Tests for file conversion endpoints."""
|
|
import io
|
|
|
|
|
|
def test_pdf_to_word_no_file(client):
|
|
"""POST /api/convert/pdf-to-word without file should return 400."""
|
|
response = client.post('/api/convert/pdf-to-word')
|
|
assert response.status_code == 400
|
|
data = response.get_json()
|
|
assert 'error' in data
|
|
|
|
|
|
def test_pdf_to_word_wrong_extension(client):
|
|
"""POST /api/convert/pdf-to-word with non-PDF should return 400."""
|
|
data = {
|
|
'file': (io.BytesIO(b'hello world'), 'test.txt'),
|
|
}
|
|
response = client.post(
|
|
'/api/convert/pdf-to-word',
|
|
data=data,
|
|
content_type='multipart/form-data',
|
|
)
|
|
assert response.status_code == 400
|
|
|
|
|
|
def test_word_to_pdf_no_file(client):
|
|
"""POST /api/convert/word-to-pdf without file should return 400."""
|
|
response = client.post('/api/convert/word-to-pdf')
|
|
assert response.status_code == 400
|
|
|
|
|
|
def test_word_to_pdf_wrong_extension(client):
|
|
"""POST /api/convert/word-to-pdf with non-Word file should return 400."""
|
|
data = {
|
|
'file': (io.BytesIO(b'hello world'), 'test.pdf'),
|
|
}
|
|
response = client.post(
|
|
'/api/convert/word-to-pdf',
|
|
data=data,
|
|
content_type='multipart/form-data',
|
|
)
|
|
assert response.status_code == 400
|