From 4fed1111f4c084f8e9bbd29d33f9aa6ffb9f1dba Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 23 Apr 2019 01:45:02 -0400 Subject: [PATCH] Add favorite document views tests Signed-off-by: Roberto Rosario --- HISTORY.rst | 2 +- docs/releases/3.2.rst | 1 + .../tests/test_favorite_document_views.py | 75 +++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 mayan/apps/documents/tests/test_favorite_document_views.py diff --git a/HISTORY.rst b/HISTORY.rst index 676a16bf1f..0e1859d991 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -120,7 +120,7 @@ version that does filtering. * Update OCR links activation. * Update document parsing link activation. - +* Add favorite document views tests. 3.1.11 (2019-04-XX) =================== * Fix multiple tag selection wizard step. diff --git a/docs/releases/3.2.rst b/docs/releases/3.2.rst index 5f5af169be..e691bfd948 100644 --- a/docs/releases/3.2.rst +++ b/docs/releases/3.2.rst @@ -152,6 +152,7 @@ Other changes version that does filtering. * Update OCR links activation. * Update document parsing link activation. +* Add favorite document views tests. Removals -------- diff --git a/mayan/apps/documents/tests/test_favorite_document_views.py b/mayan/apps/documents/tests/test_favorite_document_views.py new file mode 100644 index 0000000000..df3e981aa0 --- /dev/null +++ b/mayan/apps/documents/tests/test_favorite_document_views.py @@ -0,0 +1,75 @@ +from __future__ import unicode_literals + +from ..models import FavoriteDocument +from ..permissions import permission_document_view + +from .base import GenericDocumentViewTestCase + + +class FavoriteDocumentsTestCase(GenericDocumentViewTestCase): + def _request_document_add_to_favorites_view(self): + return self.post( + viewname='documents:document_add_to_favorites', + kwargs={'pk': self.test_document.pk} + ) + + def test_document_add_to_favorites_view_no_permission(self): + response = self._request_document_add_to_favorites_view() + self.assertEqual(response.status_code, 302) + self.assertEqual(FavoriteDocument.objects.count(), 0) + + def test_document_add_to_favorites_view_with_access(self): + self.grant_access( + obj=self.test_document, permission=permission_document_view + ) + response = self._request_document_add_to_favorites_view() + self.assertEqual(response.status_code, 302) + self.assertEqual(FavoriteDocument.objects.count(), 1) + + def _document_add_to_favorites(self): + FavoriteDocument.objects.add_for_user( + document=self.test_document, user=self._test_case_user + ) + + def _request_document_list_favorites(self): + return self.get( + viewname='documents:document_list_favorites', + ) + + def test_document_list_favorites_view_no_permission(self): + self._document_add_to_favorites() + response = self._request_document_list_favorites() + self.assertNotContains( + response=response, text=self.test_document.label, status_code=200 + ) + + def test_document_list_favorites_view_with_access(self): + self._document_add_to_favorites() + self.grant_access( + obj=self.test_document, permission=permission_document_view + ) + response = self._request_document_list_favorites() + self.assertContains( + response=response, text=self.test_document.label, status_code=200 + ) + + def _request_document_remove_from_favorites(self): + return self.post( + viewname='documents:document_remove_from_favorites', + kwargs={'pk': self.test_document.pk} + ) + + def test_document_remove_from_favorites_view_no_permission(self): + self._document_add_to_favorites() + response = self._request_document_remove_from_favorites() + self.assertEqual(response.status_code, 302) + self.assertEqual(FavoriteDocument.objects.count(), 1) + + def test_document_remove_from_favorites_view_with_access(self): + self._document_add_to_favorites() + self.grant_access( + obj=self.test_document, permission=permission_document_view + ) + response = self._request_document_remove_from_favorites() + self.assertEqual(response.status_code, 302) + self.assertEqual(FavoriteDocument.objects.count(), 0)