Split signup tests to 2 files

This commit is contained in:
Aarni Halinen
2020-06-16 17:57:48 +03:00
parent 683f50b199
commit 319324503f
2 changed files with 98 additions and 70 deletions
-70
View File
@@ -3,13 +3,11 @@ from unittest import skip
from django.contrib.auth.models import User
from rest_framework import status
from rest_framework.test import APITestCase, force_authenticate
from webapp.serializers import SignupSerializer, SignupFormSerializer
from webapp.models import Signup
from webapp.tests.event_fixture import createEventObject
from webapp.tests.signup_fixture import createSignupForm, createSignupObject, createSignupRequest, ALL_QUESTION_TYPES, ALL_QUESTION_TYPES_ANSWER
URL = "/api/signup/"
@@ -33,10 +31,6 @@ class SignupTestCase(APITestCase):
self.signupForm.signup_set.all(),
many=True
)
# Unauthorized
response = self.client.get(URL, format="json")
self.assertTrue(response.status_code, status.HTTP_401_UNAUTHORIZED)
# Authenticate
self.client.force_authenticate(user=self.authClient)
response = self.client.get(URL, format="json")
@@ -48,10 +42,6 @@ class SignupTestCase(APITestCase):
expected = SignupSerializer(
Signup.objects.get(id=id)
)
# Unauthorized
response = self.client.get(f"{URL}{id}/", format="json")
self.assertTrue(response.status_code, status.HTTP_401_UNAUTHORIZED)
# Authenticate
self.client.force_authenticate(user=self.authClient)
response = self.client.get(f"{URL}{id}/", format="json")
@@ -64,70 +54,10 @@ class SignupTestCase(APITestCase):
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(Signup.objects.count(), 3)
def test_create_signup_404_or_hidden(self):
new = createSignupRequest(3001, ALL_QUESTION_TYPES_ANSWER)
response = self.client.post(URL, new, format="json")
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
self.assertEqual(Signup.objects.count(), 2)
new = createSignupRequest(self.hiddenForm.id, ALL_QUESTION_TYPES_ANSWER)
response = self.client.post(URL, new, format="json")
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
self.assertEqual(Signup.objects.count(), 2)
@skip("NotImplemented")
def test_get_hidden_forms_admin(self):
pass
def test_create_malformed_answer(self):
# Empty body
response = self.client.post(URL, createSignupRequest(self.signupForm.id, {}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
# Array
response = self.client.post(URL, createSignupRequest(self.signupForm.id, []), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
# Extra ids
testInput = ALL_QUESTION_TYPES_ANSWER.copy()
testInput["newId"] = "Oon extraa"
response = self.client.post(URL, createSignupRequest(self.signupForm.id, testInput), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
# Bad id
response = self.client.post(URL, createSignupRequest(self.signupFormText.id, {"malformed": "Tekstiä"}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
# Wrong data type for text
response = self.client.post(URL, createSignupRequest(self.signupFormText.id, {"j5CeRZDvl": 123}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
# Wrong data for checkbox
response = self.client.post(URL, createSignupRequest(self.signupFormCheck.id, {
"i10d426d5": ["D"]
}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
# Wrong data type for checkbox
response = self.client.post(URL, createSignupRequest(self.signupFormCheck.id, {
"i10d426d5": {"j5CeRZDvl": {"asd": "123"}}
}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
# Wrong data for radiobutton
response = self.client.post(URL, createSignupRequest(self.signupFormRadio.id, {
"RHJhSoaLD": []
}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
# Wrong data type for radiobutton
response = self.client.post(URL, createSignupRequest(self.signupFormRadio.id, {
"RHJhSoaLD": {"asd": "123"}
}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(Signup.objects.count(), 2)
# Update and Delete are available for super admin (Django Admin)
# and to the user that signed up (uid token)
@skip("NotImplemented")
+98
View File
@@ -0,0 +1,98 @@
from django.test import TestCase
from unittest import skip
from django.contrib.auth.models import User
from rest_framework import status
from rest_framework.test import APITestCase, force_authenticate
from webapp.serializers import SignupSerializer, SignupFormSerializer
from webapp.models import Signup
from webapp.tests.event_fixture import createEventObject
from webapp.tests.signup_fixture import createSignupForm, createSignupObject, createSignupRequest, ALL_QUESTION_TYPES, ALL_QUESTION_TYPES_ANSWER
URL = "/api/signup/"
class SignupErrorTestCase(APITestCase):
def setUp(self):
self.signupForm = createSignupForm()
self.signupFormText = createSignupForm(name="Form2", questions=[ALL_QUESTION_TYPES[0]])
self.signupFormRadio = createSignupForm(name="Form3", questions=[ALL_QUESTION_TYPES[1]])
self.signupFormCheck = createSignupForm(name="Form4", questions=[ALL_QUESTION_TYPES[2]])
self.hiddenForm = createSignupForm(visible=False)
self.signup1 = createSignupObject(self.signupForm, ALL_QUESTION_TYPES)
self.signup2 = createSignupObject(self.signupForm, ALL_QUESTION_TYPES)
username, password = "test_admin", "password123"
self.authClient = User.objects.create_superuser(username, "myemail@test.com", password)
def test_get_all_unauthorized(self):
response = self.client.get(URL, format="json")
self.assertTrue(response.status_code, status.HTTP_401_UNAUTHORIZED)
def test_get_single_unauthorized(self):
id = self.signup1.id
expected = SignupSerializer(
Signup.objects.get(id=id)
)
response = self.client.get(f"{URL}{id}/", format="json")
self.assertTrue(response.status_code, status.HTTP_401_UNAUTHORIZED)
def test_create_signup_404(self):
new = createSignupRequest(3001, ALL_QUESTION_TYPES_ANSWER)
response = self.client.post(URL, new, format="json")
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
self.assertEqual(Signup.objects.count(), 2)
def test_create_signup_hidden(self):
new = createSignupRequest(self.hiddenForm.id, ALL_QUESTION_TYPES_ANSWER)
response = self.client.post(URL, new, format="json")
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
self.assertEqual(Signup.objects.count(), 2)
def test_create_empty_body(self):
response = self.client.post(URL, createSignupRequest(self.signupForm.id, {}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_array_body(self):
response = self.client.post(URL, createSignupRequest(self.signupForm.id, []), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_extra_body(self):
testInput = ALL_QUESTION_TYPES_ANSWER.copy()
testInput["newId"] = "Oon extraa"
response = self.client.post(URL, createSignupRequest(self.signupForm.id, testInput), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_bad_id(self):
response = self.client.post(URL, createSignupRequest(self.signupFormText.id, {"malformed": "Tekstiä"}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_bad_type_text(self):
response = self.client.post(URL, createSignupRequest(self.signupFormText.id, {"j5CeRZDvl": 123}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_bad_data_checkbox(self):
response = self.client.post(URL, createSignupRequest(self.signupFormCheck.id, {
"i10d426d5": ["D"]
}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_bad_type_checkbox(self):
response = self.client.post(URL, createSignupRequest(self.signupFormCheck.id, {
"i10d426d5": {"j5CeRZDvl": {"asd": "123"}}
}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_bad_radio(self):
response = self.client.post(URL, createSignupRequest(self.signupFormRadio.id, {
"RHJhSoaLD": []
}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_bad_type_radio(self):
response = self.client.post(URL, createSignupRequest(self.signupFormRadio.id, {
"RHJhSoaLD": {"asd": "123"}
}), format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(Signup.objects.count(), 2)