From 9f1bd5b2e5c0f33ba17cd7bfdfdaf0c2f4a77147 Mon Sep 17 00:00:00 2001 From: Clemens Wolff Date: Mon, 6 Jan 2020 15:57:31 -0500 Subject: [PATCH] Add test for document filter --- app/api/tests/test_api.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/api/tests/test_api.py b/app/api/tests/test_api.py index f806c222..ed5cf843 100644 --- a/app/api/tests/test_api.py +++ b/app/api/tests/test_api.py @@ -383,6 +383,8 @@ class TestDocumentListAPI(APITestCase): email='fizz@buzz.com') cls.main_project = mommy.make('TextClassificationProject', users=[project_member, super_user]) + doc1 = mommy.make('Document', project=cls.main_project) + doc2 = mommy.make('Document', project=cls.main_project) mommy.make('Document', project=cls.main_project) cls.random_order_project = mommy.make('TextClassificationProject', users=[project_member, super_user], @@ -399,11 +401,29 @@ class TestDocumentListAPI(APITestCase): assign_user_to_role(project_member=project_member, project=cls.random_order_project, role_name=settings.ROLE_ANNOTATOR) + mommy.make('DocumentAnnotation', document=doc1, user=project_member) + mommy.make('DocumentAnnotation', document=doc2, user=project_member) + def test_returns_docs_to_project_member(self): self.client.login(username=self.project_member_name, password=self.project_member_pass) response = self.client.get(self.url, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(len(response.json().get('results')), 3) + + def test_returns_docs_to_project_member_filtered_to_active(self): + self.client.login(username=self.project_member_name, + password=self.project_member_pass) + response = self.client.get('{}?doc_annotations__isnull=true'.format(self.url), format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(len(response.json().get('results')), 1) + + def test_returns_docs_to_project_member_filtered_to_completed(self): + self.client.login(username=self.project_member_name, + password=self.project_member_pass) + response = self.client.get('{}?doc_annotations__isnull=false'.format(self.url), format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(len(response.json().get('results')), 2) def test_returns_docs_in_consistent_order_for_all_users(self): self.client.login(username=self.project_member_name, password=self.project_member_pass) @@ -414,7 +434,7 @@ class TestDocumentListAPI(APITestCase): user2_documents = self.client.get(self.url, format='json').json().get('results') self.client.logout() - self.assertEqual(user1_documents, user2_documents) + self.assertEqual([doc['id'] for doc in user1_documents], [doc['id'] for doc in user2_documents]) def test_can_return_docs_in_consistent_random_order(self): self.client.login(username=self.project_member_name, password=self.project_member_pass)