From 12624b03927214648052c8af0968d85e582b78b6 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:32:28 -0800 Subject: [PATCH] Merge branch 'dev' into feature-shared-icon --- src/documents/tests/test_api_documents.py | 14 +++++++++++++- src/documents/tests/test_api_permissions.py | 16 ++++++++++++++++ src/documents/tests/test_api_search.py | 7 +++++-- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index 779d02134..8415b9a71 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -594,7 +594,7 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase): results = response.data["results"] self.assertEqual(len(results), 0) - def test_document_owner_filters(self): + def test_document_permissions_filters(self): """ GIVEN: - Documents with owners, with and without granted permissions @@ -686,6 +686,18 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase): [u1_doc1.id, u1_doc2.id, u2_doc2.id], ) + assign_perm("view_document", u2, u1_doc1) + + # Will show only documents shared by user + response = self.client.get(f"/api/documents/?shared_by__id={u1.id}") + self.assertEqual(response.status_code, status.HTTP_200_OK) + results = response.data["results"] + self.assertEqual(len(results), 1) + self.assertCountEqual( + [results[0]["id"]], + [u1_doc1.id], + ) + def test_pagination_all(self): """ GIVEN: diff --git a/src/documents/tests/test_api_permissions.py b/src/documents/tests/test_api_permissions.py index 1b6bd19df..9a32a6a67 100644 --- a/src/documents/tests/test_api_permissions.py +++ b/src/documents/tests/test_api_permissions.py @@ -408,10 +408,17 @@ class TestApiAuth(DirectoriesMixin, APITestCase): checksum="3", owner=user2, ) + doc4 = Document.objects.create( + title="Test4", + content="content 4", + checksum="4", + owner=user1, + ) assign_perm("view_document", user1, doc2) assign_perm("view_document", user1, doc3) assign_perm("change_document", user1, doc3) + assign_perm("view_document", user2, doc4) self.client.force_authenticate(user1) @@ -427,8 +434,16 @@ class TestApiAuth(DirectoriesMixin, APITestCase): self.assertNotIn("permissions", resp_data["results"][0]) self.assertIn("user_can_change", resp_data["results"][0]) self.assertEqual(resp_data["results"][0]["user_can_change"], True) # doc1 + self.assertEqual( + resp_data["results"][0]["is_shared_by_requester"], + False, + ) # doc1 self.assertEqual(resp_data["results"][1]["user_can_change"], False) # doc2 self.assertEqual(resp_data["results"][2]["user_can_change"], True) # doc3 + self.assertEqual( + resp_data["results"][3]["is_shared_by_requester"], + True, + ) # doc4 response = self.client.get( "/api/documents/?full_perms=true", @@ -441,6 +456,7 @@ class TestApiAuth(DirectoriesMixin, APITestCase): self.assertIn("permissions", resp_data["results"][0]) self.assertNotIn("user_can_change", resp_data["results"][0]) + self.assertNotIn("is_shared_by_requester", resp_data["results"][0]) class TestApiUser(DirectoriesMixin, APITestCase): diff --git a/src/documents/tests/test_api_search.py b/src/documents/tests/test_api_search.py index 4cd1a367c..9f952ec54 100644 --- a/src/documents/tests/test_api_search.py +++ b/src/documents/tests/test_api_search.py @@ -968,7 +968,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): u1.user_permissions.add(*Permission.objects.filter(codename="view_document")) u2.user_permissions.add(*Permission.objects.filter(codename="view_document")) - Document.objects.create(checksum="1", content="test 1", owner=u1) + d1 = Document.objects.create(checksum="1", content="test 1", owner=u1) d2 = Document.objects.create(checksum="2", content="test 2", owner=u2) d3 = Document.objects.create(checksum="3", content="test 3", owner=u2) Document.objects.create(checksum="4", content="test 4") @@ -993,9 +993,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): assign_perm("view_document", u1, d2) assign_perm("view_document", u1, d3) + assign_perm("view_document", u2, d1) with AsyncWriter(index.open_index()) as writer: - for doc in [d2, d3]: + for doc in [d1, d2, d3]: index.update_document(writer, doc) self.client.force_authenticate(user=u1) @@ -1011,6 +1012,8 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): self.assertEqual(r.data["count"], 1) r = self.client.get("/api/documents/?query=test&owner__isnull=true") self.assertEqual(r.data["count"], 1) + r = self.client.get(f"/api/documents/?query=test&shared_by__id={u1.id}") + self.assertEqual(r.data["count"], 1) def test_search_sorting(self): u1 = User.objects.create_user("user1")