Skip to content

Commit

Permalink
Add Tests
Browse files Browse the repository at this point in the history
Implemented tests for setting and removing an entry as a disproof.
Removed duplicate code segment from views.py
  • Loading branch information
Bera0422 committed Dec 22, 2023
1 parent 82ecc5c commit a34fa03
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 10 deletions.
61 changes: 60 additions & 1 deletion project/backend/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -1013,4 +1013,63 @@ def test_add_user_semantic_tag(self):
'sm_tag_id': self.sm_tag.pk,
}
response = self.client.post(url, payload, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)

class WorkspaceProofTestCase(TestCase):
def setUp(self):

self.user_for_contributor = User.objects.create_user(id=3, email= '[email protected]', username='[email protected]', first_name='Contributor User', last_name='Test')
self.contributor = Contributor.objects.create(user=self.user_for_contributor, bio="I am the contributor")

self.client = APIClient()

self.cont_token = Token.objects.create(user=self.user_for_contributor)
self.client.credentials(HTTP_AUTHORIZATION=f"Token {self.cont_token.key}")

self.entry = Entry.objects.create(entry_id = 1)
self.workspace = Workspace.objects.create(workspace_id=1)

self.workspace.entries.add(self.entry)

self.contributor.workspaces.add(self.workspace)

def tearDown(self):
Entry.objects.all().delete()
Workspace.objects.all().delete()
Contributor.objects.all().delete()
User.objects.all().delete()
Token.objects.all().delete()

print("All tests for setting/removing workspace proof are completed!")


def test_set_workspace_proof(self):
url = reverse('set_workspace_proof')
data = {
'workspace_id': self.workspace.workspace_id,
'entry_id': self.entry.entry_id,
'is_disproof': True,
}

response = self.client.post(url, data=data)

self.assertEqual(response.status_code, 200, response.json())

self.assertEqual(Workspace.objects.get(pk=self.workspace.workspace_id).proof_entry.entry_id, self.entry.entry_id)
self.assertEqual(Entry.objects.get(pk=self.entry.entry_id).is_proof_entry, True)
self.assertEqual(Entry.objects.get(pk=self.entry.entry_id).is_disproof_entry, True)


def test_remove_workspace_proof(self):
url = reverse('remove_workspace_proof')
data = {
'workspace_id': self.workspace.workspace_id,
}

response = self.client.post(url, data=data)

self.assertEqual(response.status_code, 200, response.json())

self.assertIsNone(Workspace.objects.get(pk=self.workspace.workspace_id).proof_entry)
self.assertEqual(Entry.objects.get(pk=self.entry.entry_id).is_proof_entry, False)
self.assertEqual(Entry.objects.get(pk=self.entry.entry_id).is_disproof_entry, False)
9 changes: 0 additions & 9 deletions project/backend/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1103,15 +1103,6 @@ def get_random_node_id(request):
node_list.append(node_ids[index])
return JsonResponse({'node_ids': node_list}, status=200)


class IsContributor(BasePermission):
def has_permission(self, request, view):
if not request.user.is_authenticated:
return False
if not Contributor.objects.filter(pk=request.user.basicuser.pk).exists():
return False
return True

@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated, IsContributor))
@api_view(['POST'])
Expand Down

0 comments on commit a34fa03

Please sign in to comment.