89 lines
2.7 KiB
Python
89 lines
2.7 KiB
Python
from django.test import TestCase
|
|
from django.contrib.auth.models import User
|
|
from django.utils import timezone
|
|
from rest_framework import status
|
|
from rest_framework.test import APITestCase, APIRequestFactory, force_authenticate
|
|
|
|
from webapp.models import Signup, SignupForm
|
|
from webapp.serializers import SignupSerializer, SignupFormSerializer
|
|
from webapp.tests.event_fixture import createEventObject, createEventJSON
|
|
from webapp.utils import month_from_now
|
|
import json
|
|
|
|
URL = "/api/signup/"
|
|
|
|
ALL_QUESTION_TYPES = json.dumps([
|
|
|
|
])
|
|
|
|
|
|
def createSignupForm(name="Form1", start_time=timezone.now(), end_time=month_from_now(), questions=ALL_QUESTION_TYPES, visible=True):
|
|
return SignupForm.objects.create(
|
|
title=name,
|
|
start_time=start_time,
|
|
end_time=end_time,
|
|
questions=questions,
|
|
visible=visible
|
|
)
|
|
|
|
|
|
def createSignup(form, answer):
|
|
return Signup.objects.create(
|
|
signupForm=form,
|
|
answer=answer
|
|
)
|
|
|
|
|
|
class SignupTestCase(APITestCase):
|
|
|
|
def setUp(self):
|
|
self.signupForm = createSignupForm()
|
|
self.event = createEventObject(signup_id=self.signupForm.id)
|
|
|
|
self.signup1 = createSignup(self.signupForm, json.dumps([]))
|
|
self.signup2 = createSignup(self.signupForm, json.dumps([]))
|
|
|
|
username, password = "test_admin", "password123"
|
|
self.authClient = User.objects.create_superuser(username, "myemail@test.com", password)
|
|
|
|
def test_get_signups(self):
|
|
expected = SignupSerializer(
|
|
self.signupForm.signup_set.all(),
|
|
many=True
|
|
)
|
|
|
|
print(expected.data)
|
|
|
|
# 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")
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(response.data["results"], expected.data)
|
|
|
|
def test_get_single_signup(self):
|
|
id = self.signup1.id
|
|
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")
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(response.data, expected.data)
|
|
|
|
def test_create_signup(self):
|
|
pass
|
|
|
|
def test_update_signup(self):
|
|
pass
|
|
|
|
def test_delete_signup(self):
|
|
pass
|