Created
January 19, 2019 03:11
-
-
Save leslie-alldridge/f6553a5c23d54c9ab4c69f2414a69bc8 to your computer and use it in GitHub Desktop.
django test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.test import TestCase | |
# Create your tests here. | |
from django.urls import reverse | |
from rest_framework.test import APITestCase, APIClient | |
from rest_framework.views import status | |
from .models import Songs | |
from .serializers import SongsSerializer | |
# tests for views | |
class BaseViewTest(APITestCase): | |
client = APIClient() | |
@staticmethod | |
def create_song(title="", artist=""): | |
if title != "" and artist != "": | |
Songs.objects.create(title=title, artist=artist) | |
def setUp(self): | |
# add test data | |
self.create_song("like glue", "sean paul") | |
self.create_song("simple song", "konshens") | |
self.create_song("love is wicked", "brick and lace") | |
self.create_song("jam rock", "damien marley") | |
class GetAllSongsTest(BaseViewTest): | |
def test_get_all_songs(self): | |
""" | |
This test ensures that all songs added in the setUp method | |
exist when we make a GET request to the songs/ endpoint | |
""" | |
# hit the API endpoint | |
response = self.client.get( | |
reverse("songs-all", kwargs={"version": "v1"}) | |
) | |
# fetch the data from db | |
expected = Songs.objects.all() | |
serialized = SongsSerializer(expected, many=True) | |
self.assertEqual(response.data, serialized.data) | |
self.assertEqual(response.status_code, status.HTTP_200_OK) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment