Spaces:
Sleeping
Sleeping
| import pytest | |
| import io | |
| from unittest.mock import patch, MagicMock | |
| def test_demorph_no_image(client): | |
| """Test /api/demorph returns 400 when no image is provided.""" | |
| response = client.post('/api/demorph') | |
| assert response.status_code == 400 | |
| assert 'No image provided' in response.get_json()['error'] | |
| def test_demorph_success(client, app): | |
| """Test /api/demorph successfully runs detection and demorphing.""" | |
| data = { | |
| 'image': (io.BytesIO(b"dummy image data"), 'morph.jpg'), | |
| 'method': 'transformer', | |
| 'prompt': 'restore face' | |
| } | |
| with patch('src.routes.demorph.os.makedirs'), \ | |
| patch('src.routes.demorph.time.time', return_value=123456789): | |
| response = client.post('/api/demorph', data=data, content_type='multipart/form-data') | |
| assert response.status_code == 200 | |
| json_data = response.get_json() | |
| assert json_data['status'] == 'success' | |
| assert json_data['is_morphed'] is True | |
| assert json_data['detection_confidence'] == 0.88 | |
| assert json_data['method'] == 'transformer' | |
| assert 'output_url' in json_data | |
| # Verify both detection and demorphing were called on the API | |
| app.mg_api.detect_morph.assert_called_once() | |
| app.mg_api.demorph_image.assert_called_once() | |