From 5d322122e0af3f10184cd5d13ce3c0144cfae64f Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Fri, 7 Aug 2015 03:08:00 -0400 Subject: [PATCH] Add dynamic search app API test. --- mayan/apps/dynamic_search/test_api.py | 56 +++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 mayan/apps/dynamic_search/test_api.py diff --git a/mayan/apps/dynamic_search/test_api.py b/mayan/apps/dynamic_search/test_api.py new file mode 100644 index 0000000000..25a3094a84 --- /dev/null +++ b/mayan/apps/dynamic_search/test_api.py @@ -0,0 +1,56 @@ +from __future__ import unicode_literals + +from json import loads + +from django.contrib.auth.models import User +from django.core.files import File +from django.core.urlresolvers import reverse + +from rest_framework import status +from rest_framework.test import APITestCase + +from documents.models import DocumentType +from documents.test_models import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, + TEST_DOCUMENT_FILENAME, TEST_DOCUMENT_PATH, TEST_DOCUMENT_TYPE, + TEST_SMALL_DOCUMENT_FILENAME, TEST_SMALL_DOCUMENT_PATH, +) + + +class SearchAPITestCase(APITestCase): + """ + Test the search API endpoints + """ + + def setUp(self): + self.admin_user = User.objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.force_authenticate(user=self.admin_user) + + def tearDown(self): + self.admin_user.delete() + + def test_search(self): + document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + ocr_settings = document_type.ocr_settings + ocr_settings.auto_ocr = False + ocr_settings.save() + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + document = document_type.new_document( + file_object=File(file_object), + ) + + response = self.client.get( + '{}?q={}'.format(reverse('rest_api:search-view'), document.label) + ) + + content = loads(response.content) + self.assertEqual(content['results'][0]['label'], document.label) + self.assertEqual(content['count'], 1)