55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
from django.contrib.auth.models import User
|
|
from rest_framework import status
|
|
from rest_framework.test import APITestCase, APIRequestFactory
|
|
|
|
from webapp.models import JobAd
|
|
from webapp.serializers import JobAdSerializer
|
|
|
|
API = "/api/jobads/"
|
|
|
|
|
|
class JobAdTestCase(APITestCase):
|
|
|
|
def setUp(self):
|
|
self.prefilled_jobad = JobAd.objects.create(
|
|
title_fi="ABB Test",
|
|
title_en="ABB Test",
|
|
visible=True,
|
|
description_fi="desc",
|
|
description_en="desc",
|
|
content_fi="lorem",
|
|
content_en="lorem"
|
|
)
|
|
|
|
username, password = "test_admin", "password123"
|
|
self.authClient = User.objects.create_superuser(username, "myemail@test.com", password)
|
|
|
|
def test_get_jobads(self):
|
|
response = self.client.get(API, format="json")
|
|
expected = JobAdSerializer(self.prefilled_jobad).data
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(response.data["results"][0], expected)
|
|
|
|
def test_post_jobad(self):
|
|
data = {
|
|
"title_fi": "testtitle",
|
|
"title_en": "testtitle",
|
|
"visible": "True",
|
|
"description_fi": "liirumlaarum",
|
|
"description_en": "liirumlaarum",
|
|
"content_fi": "lorem ipsum",
|
|
"content_en": "lorem ipsum",
|
|
"autohide_enabled": "True"
|
|
}
|
|
|
|
# Try post without authentication
|
|
response = self.client.post(API, data, format="json")
|
|
self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
|
|
self.assertEqual(JobAd.objects.count(), 1)
|
|
# Authenticate
|
|
self.client.force_authenticate(user=self.authClient)
|
|
response = self.client.post(API, data, format="json")
|
|
# Return success and check object was created
|
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
|
self.assertEqual(JobAd.objects.count(), 2)
|