diff --git a/mayan/apps/dynamic_search/tests/test_api.py b/mayan/apps/dynamic_search/tests/test_api.py index 7628795063..7d6065cf1c 100644 --- a/mayan/apps/dynamic_search/tests/test_api.py +++ b/mayan/apps/dynamic_search/tests/test_api.py @@ -1,7 +1,6 @@ from __future__ import unicode_literals from django.test import override_settings -from django.urls import reverse from rest_framework import status @@ -13,44 +12,7 @@ from rest_api.tests import BaseAPITestCase from ..classes import SearchModel -@override_settings(OCR_AUTO_OCR=False) -class SearchAPITestCase(DocumentTestMixin, BaseAPITestCase): - auto_upload_document = False - - def setUp(self): - super(SearchAPITestCase, self).setUp() - self.login_user() - - def _request_search_view(self): - return self.get( - path='{}?q={}'.format( - reverse( - 'rest_api:search-view', args=( - document_search.get_full_name(), - ) - ), self.document.label - ) - ) - - def test_search_no_access(self): - self.document = self.upload_document() - response = self._request_search_view() - self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data['count'], 0) - - def test_search_with_access(self): - self.document = self.upload_document() - self.grant_access( - permission=permission_document_view, obj=self.document - ) - response = self._request_search_view() - self.assertEqual(response.status_code, status.HTTP_200_OK) - - self.assertEqual( - response.data['results'][0]['label'], self.document.label - ) - self.assertEqual(response.data['count'], 1) - +class SearchModelAPITestCase(BaseAPITestCase): def test_search_models_view(self): response = self.get( viewname='rest_api:searchmodel-list' @@ -61,3 +23,64 @@ class SearchAPITestCase(DocumentTestMixin, BaseAPITestCase): [search_model['pk'] for search_model in response.data['results']], [search_model.pk for search_model in SearchModel.all()] ) + + +@override_settings(OCR_AUTO_OCR=False) +class SearchAPITestCase(DocumentTestMixin, BaseAPITestCase): + auto_upload_document = False + + def setUp(self): + super(SearchAPITestCase, self).setUp() + self.login_user() + self.test_document = self.upload_document() + + def _request_search_view(self): + query = {'q': self.test_document.label} + return self.get( + viewname='rest_api:search-view', kwargs={ + 'search_model': document_search.get_full_name() + }, query=query + ) + + def test_search_no_permission(self): + response = self._request_search_view() + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data['count'], 0) + + def test_search_with_access(self): + self.grant_access( + obj=self.test_document, permission=permission_document_view + ) + response = self._request_search_view() + self.assertEqual(response.status_code, status.HTTP_200_OK) + + self.assertEqual( + response.data['results'][0]['label'], self.test_document.label + ) + self.assertEqual(response.data['count'], 1) + + def _request_advanced_search_view(self): + query = {'document_type__label': self.test_document.document_type.label} + + return self.get( + viewname='rest_api:advanced-search-view', kwargs={ + 'search_model': document_search.get_full_name() + }, query=query + ) + + def test_advanced_search_api_view_no_permission(self): + response = self._request_advanced_search_view() + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data['count'], 0) + + def test_advanced_search_api_view_with_access(self): + self.grant_access( + obj=self.test_document, permission=permission_document_view + ) + + response = self._request_advanced_search_view() + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual( + response.data['results'][0]['label'], self.document.label + ) + self.assertEqual(response.data['count'], 1)