From 86ae2197f3f2febceca5575e1cbea593970d936e Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Sun, 10 Nov 2019 03:03:48 +0200 Subject: [PATCH] Contact API tests --- webapp/tests/test_contact.py | 98 ++++++++++++++++++++++++++++++++---- 1 file changed, 89 insertions(+), 9 deletions(-) diff --git a/webapp/tests/test_contact.py b/webapp/tests/test_contact.py index 4606335..747fbf7 100644 --- a/webapp/tests/test_contact.py +++ b/webapp/tests/test_contact.py @@ -1,16 +1,96 @@ from django.test import TestCase -from django.core.files import File from django.contrib.auth.models import User -from rest_framework.test import APITestCase +from django.utils import timezone from rest_framework import status -from rest_framework.test import force_authenticate -from webapp.models import Tag, Feed -from webapp.serializers import TagSerializer, FeedSerializer +from rest_framework.test import APITestCase -from collections import OrderedDict -from itertools import islice -import tempfile +from webapp.models import Official, Role, Occupation, Committee +from webapp.serializers import OccupationSerializer + + +URL = "/api/contacts/" +COMMITTEE = Committee.objects.create( + name_fi="Viestintä", + name_en="Communications" +) + + +def createRoleBoard(): + return Role.objects.create( + name_fi="Metsuri", + name_en="The lumberjack", + is_board=True, + description_fi="Toimikunta PJ", + description_en="Committee Chair" + ) + + +def createRoleNoBoard(): + return Role.objects.create( + name_fi="Toimari", + name_en="Official", + is_board=False, + description_fi="Toimikunta jäbä", + description_en="Committee dude(tte)", + committee=COMMITTEE + ) + + +def createOccupation(year, role=createRoleNoBoard(), dummydata=1): + occupation = Occupation.objects.create( + start_date=timezone.datetime(year, 1, 1), + end_date=timezone.datetime(year, 12, 31), + role=role + ) + + occupation.officials.add( + createPerson(dummydata) + ) + + return occupation + + +def createPerson(name): + return Official.objects.create( + user=User.objects.create_user(f"testi{name}", "test@test.tld", "password123"), + first_name=f"first{name}", + last_name=f"last{name}", + email="test@test.tld", + phone_number="+358501234567", + image="" + ) class ContactsTestCase(APITestCase): - pass + + def setUp(self): + createOccupation(timezone.now().year, role=createRoleBoard(), dummydata=1) + createOccupation(timezone.now().year, dummydata=2) + createOccupation(1970, role=createRoleBoard(), dummydata=3) + createOccupation(1970, dummydata=4) + + def test_get(self): + response = self.client.get(f"{URL}", format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + serializer = OccupationSerializer( + Occupation.by_year(2019), + many=True + ) + self.assertEqual(response.data["results"], serializer.data) + + def test_get_by_year(self): + response = self.client.get(f"{URL}?year=1970", format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + serializer = OccupationSerializer( + Occupation.by_year(1970), + many=True + ) + + self.assertEqual(response.data["results"], serializer.data) + + def test_by_year_empty(self): + response = self.client.get(f"{URL}?year=1971") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["results"], [])