diff --git a/mayan/apps/documents/serializers.py b/mayan/apps/documents/serializers.py index 7ff99b2689..a6858e1de1 100644 --- a/mayan/apps/documents/serializers.py +++ b/mayan/apps/documents/serializers.py @@ -106,7 +106,7 @@ class NewDocumentVersionSerializer(serializers.Serializer): class DeletedDocumentSerializer(serializers.HyperlinkedModelSerializer): document_type_label = serializers.SerializerMethodField() restore = serializers.HyperlinkedIdentityField( - view_name='rest_api:deleteddocument-restore' + view_name='rest_api:trasheddocument-restore' ) def get_document_type_label(self, instance): @@ -115,7 +115,7 @@ class DeletedDocumentSerializer(serializers.HyperlinkedModelSerializer): class Meta: extra_kwargs = { 'document_type': {'view_name': 'rest_api:documenttype-detail'}, - 'url': {'view_name': 'rest_api:deleteddocument-detail'} + 'url': {'view_name': 'rest_api:trasheddocument-detail'} } fields = ( 'date_added', 'deleted_date_time', 'description', 'document_type', diff --git a/mayan/apps/documents/tests/test_api.py b/mayan/apps/documents/tests/test_api.py index 7195b01b15..fc1a8225c0 100644 --- a/mayan/apps/documents/tests/test_api.py +++ b/mayan/apps/documents/tests/test_api.py @@ -10,6 +10,7 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings +from django.utils.encoding import force_text from django.utils.six import BytesIO from rest_framework import status @@ -93,10 +94,6 @@ class DocumentTypeAPITestCase(APITestCase): @override_settings(OCR_AUTO_OCR=False) class DocumentAPITestCase(APITestCase): - """ - Test document API endpoints - """ - def setUp(self): self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, @@ -155,51 +152,6 @@ class DocumentAPITestCase(APITestCase): ) self.assertEqual(document.page_count, 47) - def test_document_move_to_trash(self): - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = self.document_type.new_document( - file_object=file_object, - ) - - self.client.delete( - reverse('rest_api:document-detail', args=(document.pk,)) - ) - - self.assertEqual(Document.objects.count(), 0) - self.assertEqual(Document.trash.count(), 1) - - def test_deleted_document_delete_from_trash(self): - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = self.document_type.new_document( - file_object=file_object, - ) - - document.delete() - - self.assertEqual(Document.objects.count(), 0) - self.assertEqual(Document.trash.count(), 1) - - self.client.delete( - reverse('rest_api:trasheddocument-detail', args=(document.pk,)) - ) - - self.assertEqual(Document.trash.count(), 0) - - def test_deleted_document_restore(self): - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = self.document_type.new_document( - file_object=file_object, - ) - - document.delete() - - self.client.post( - reverse('rest_api:trasheddocument-restore', args=(document.pk,)) - ) - - self.assertEqual(Document.trash.count(), 0) - self.assertEqual(Document.objects.count(), 1) - def test_document_new_version_upload(self): with open(TEST_SMALL_DOCUMENT_PATH) as file_object: document = self.document_type.new_document( @@ -366,5 +318,88 @@ class DocumentAPITestCase(APITestCase): TEST_DOCUMENT_DESCRIPTION_EDITED ) + +@override_settings(OCR_AUTO_OCR=False) +class TrashedDocumentAPITestCase(APITestCase): + def setUp(self): + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + def tearDown(self): + self.admin_user.delete() + self.document_type.delete() + + def _upload_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + document = self.document_type.new_document( + file_object=file_object, + ) + + return document + + def test_document_move_to_trash(self): + document = self._upload_document() + + self.client.delete( + reverse('rest_api:document-detail', args=(document.pk,)) + ) + + self.assertEqual(Document.objects.count(), 0) + self.assertEqual(Document.trash.count(), 1) + + def test_trashed_document_delete_from_trash(self): + document = self._upload_document() + document.delete() + + self.assertEqual(Document.objects.count(), 0) + self.assertEqual(Document.trash.count(), 1) + + self.client.delete( + reverse('rest_api:trasheddocument-detail', args=(document.pk,)) + ) + + self.assertEqual(Document.trash.count(), 0) + + def test_trashed_document_detail_view(self): + document = self._upload_document() + document.delete() + + response = self.client.get( + reverse('rest_api:trasheddocument-detail', args=(document.pk,)) + ) + + self.assertEqual(response.data['uuid'], force_text(document.uuid)) + + def test_trashed_document_list_view(self): + document = self._upload_document() + document.delete() + + response = self.client.get( + reverse('rest_api:trasheddocument-list') + ) + + self.assertEqual(response.data['results'][0]['uuid'], force_text(document.uuid)) + + def test_trashed_document_restore(self): + document = self._upload_document() + document.delete() + + self.client.post( + reverse('rest_api:trasheddocument-restore', args=(document.pk,)) + ) + + self.assertEqual(Document.trash.count(), 0) + self.assertEqual(Document.objects.count(), 1) + # TODO: def test_document_set_document_type(self): # pass diff --git a/mayan/apps/documents/tests/test_models.py b/mayan/apps/documents/tests/test_models.py index ff9983b656..a272d18b0b 100644 --- a/mayan/apps/documents/tests/test_models.py +++ b/mayan/apps/documents/tests/test_models.py @@ -4,7 +4,7 @@ from datetime import timedelta import time from common.tests import BaseTestCase -from django.test import TestCase, override_settings +from django.test import override_settings from ..exceptions import NewDocumentVersionNotAllowed from ..literals import STUB_EXPIRATION_INTERVAL diff --git a/mayan/apps/documents/tests/test_views.py b/mayan/apps/documents/tests/test_views.py index 4645de3501..19fb13b19c 100644 --- a/mayan/apps/documents/tests/test_views.py +++ b/mayan/apps/documents/tests/test_views.py @@ -380,7 +380,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertContains(response, text='queued', status_code=200) self.assertEqual(self.document.pages.count(), page_count) - def test_document_multiple_update_page_count_view_no_permission(self): self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) diff --git a/mayan/apps/documents/urls.py b/mayan/apps/documents/urls.py index c7dfd59cfd..f1714dd1d0 100644 --- a/mayan/apps/documents/urls.py +++ b/mayan/apps/documents/urls.py @@ -281,7 +281,8 @@ api_urls = patterns( ), url( r'^document_version/(?P[0-9]+)/download/$', - APIDocumentVersionDownloadView.as_view(), name='documentversion-download' + APIDocumentVersionDownloadView.as_view(), + name='documentversion-download' ), url( r'^document_page/(?P[0-9]+)/$', APIDocumentPageView.as_view(),