From 681c64579e4d32942eb062f93ba85d88876f39f6 Mon Sep 17 00:00:00 2001 From: ariannedee Date: Mon, 28 Sep 2020 16:33:11 -0700 Subject: [PATCH] DIV-1165: Set up tests. Test post method. --- edivorce/apps/core/tests/test_api.py | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 edivorce/apps/core/tests/test_api.py diff --git a/edivorce/apps/core/tests/test_api.py b/edivorce/apps/core/tests/test_api.py new file mode 100644 index 00000000..53d29cfb --- /dev/null +++ b/edivorce/apps/core/tests/test_api.py @@ -0,0 +1,59 @@ +from django.core.files.uploadedfile import SimpleUploadedFile +from django.test import modify_settings +from django.urls import reverse +from rest_framework import status +from rest_framework.test import APIClient, APITestCase + +from edivorce.apps.core.models import BceidUser, Document + + +@modify_settings(MIDDLEWARE={'remove': 'edivorce.apps.core.middleware.bceid_middleware.BceidMiddleware',}) +class APITest(APITestCase): + def setUp(self): + self.user = BceidUser.objects.create(user_guid='1234') + self.client = APIClient() + self.file = SimpleUploadedFile('test.pdf', b'test content') + + def test_get_unauthorized(self): + url = reverse('documents') + response = self.client.get(url) + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + + self.client.force_authenticate(self.user) + response = self.client.get(url) + self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + + def test_post_unauthorized(self): + data = { + 'file': self.file, + 'doc_type': 'AAI', + 'party_code': 1 + } + url = reverse('documents') + response = self.client.post(url, data) + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + + def test_post(self): + self.assertEqual(Document.objects.count(), 0) + + self.client.login(username='lauren', password='secret') + data = { + 'file': self.file, + 'doc_type': 'AAI', + 'party_code': 1 + } + + self.client.force_authenticate(self.user) + url = reverse('documents') + response = self.client.post(url, data, user=self.user) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + self.assertEqual(Document.objects.count(), 1) + document = Document.objects.first() + + # Check document properties + self.assertEqual(document.bceid_user, self.user) + self.assertEqual(document.doc_type, 'AAI') + self.assertEqual(document.party_code, 1) + self.assertEqual(document.filename, self.file.name) + self.assertEqual(document.size, self.file.size)