Contact API tests
This commit is contained in:
@@ -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"], [])
|
||||
|
||||
Reference in New Issue
Block a user