forked from erp-dev/erp
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
"""
|
|
TIIA SearchImage simplified API tests.
|
|
"""
|
|
|
|
from django.contrib.auth import get_user_model
|
|
from django.test import TestCase
|
|
from rest_framework import status
|
|
from rest_framework.test import APIClient
|
|
from unittest.mock import patch
|
|
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class TiiaSearchImageAPITestCase(TestCase):
|
|
def setUp(self):
|
|
self.client = APIClient()
|
|
self.user = User.objects.create_user(
|
|
username='test_tiia_search_user',
|
|
password='testpass123',
|
|
email='test_tiia_search@example.com',
|
|
)
|
|
|
|
def test_search_image_unauthenticated(self):
|
|
resp = self.client.post(
|
|
'/api/v1/tiia/search-image/',
|
|
data={'imageUrl': 'https://example.com/a.png'},
|
|
format='json',
|
|
)
|
|
self.assertEqual(resp.status_code, status.HTTP_401_UNAUTHORIZED)
|
|
|
|
@patch('api_v1.views.tiia.search_image_url_in_tencent_tiia')
|
|
def test_search_image_success(self, mock_search):
|
|
self.client.force_authenticate(self.user)
|
|
mock_search.return_value = {'Candidates': [{'EntityId': '1', 'Score': 99}]}
|
|
|
|
resp = self.client.post(
|
|
'/api/v1/tiia/search-image/',
|
|
data={'imageUrl': 'https://example.com/a.png'},
|
|
format='json',
|
|
)
|
|
self.assertEqual(resp.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(resp.json(), {'Candidates': [{'EntityId': '1', 'Score': 99}]})
|
|
|
|
def test_search_image_missing_image_url(self):
|
|
self.client.force_authenticate(self.user)
|
|
resp = self.client.post('/api/v1/tiia/search-image/', data={}, format='json')
|
|
self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)
|
|
self.assertIn('error', resp.json())
|
|
|