Skip to content
This repository has been archived by the owner on Feb 26, 2024. It is now read-only.

Commit

Permalink
#212 Consolidate unit tests for images and pages APIs
Browse files Browse the repository at this point in the history
Move all unit tests targeting API endpoints into the new
`icekit.api` app.
  • Loading branch information
jmurty committed Apr 7, 2017
1 parent 1dde733 commit d2171a2
Show file tree
Hide file tree
Showing 2 changed files with 91 additions and 33 deletions.
91 changes: 91 additions & 0 deletions icekit/api/pages/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
from django.apps import apps
from django.contrib.auth import get_user_model
from django.core.urlresolvers import reverse

from django_dynamic_fixture import G

from rest_framework.test import APITestCase

from fluent_contents.plugins.rawhtml.models import RawHtmlItem

from icekit import models
from icekit.page_types.layout_page.models import LayoutPage
from icekit.utils import fluent_contents


User = get_user_model()
Image = apps.get_model('icekit_plugins_image.Image')


class ImageAPITests(APITestCase):

def setUp(self):
self.super_user_1 = G(
User,
is_staff=True,
is_active=True,
is_superuser=True,
)
self.layout_1 = G(
models.Layout,
template_name='icekit/layouts/default.html',
)
self.layoutpage_1 = LayoutPage.objects.create(
author=self.super_user_1,
title='Test LayoutPage',
layout=self.layout_1,
)
self.content_instance_1 = fluent_contents.create_content_instance(
RawHtmlItem,
self.layoutpage_1,
html='<b>test 1</b>'
)
self.content_instance_2 = fluent_contents.create_content_instance(
RawHtmlItem,
self.layoutpage_1,
html='<b>test 2</b>'
)
self.content_instance_3 = fluent_contents.create_content_instance(
RawHtmlItem,
self.layoutpage_1,
html='<b>test 3</b>'
)

def test_page_api(self):
self.layoutpage_1.publish()
for j in range(20):
published_layoutpage = LayoutPage.objects.create(
author=self.super_user_1,
title='Test LayoutPage %s' % j,
layout=self.layout_1,
)
published_layoutpage.publish()

LayoutPage.objects.create(
author=self.super_user_1,
title='Draft LayoutPage %s' % j,
layout=self.layout_1,
)

response = self.client.get(reverse('page-list'))
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data['results']), 5)
self.assertEqual(response.data['count'], 21)
response = self.client.get(
reverse('page-detail', args=(self.layoutpage_1.id,)))
self.assertEqual(response.status_code, 404)
response = self.client.get(
reverse('page-detail',
args=(self.layoutpage_1.get_published().id,)))
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 6)
for key in response.data.keys():
if key is not 'content':
self.assertEqual(
response.data[key],
getattr(self.layoutpage_1.get_published(), key))
self.assertEqual(len(response.data['content']), 3)
for number, item in enumerate(response.data['content'], 1):
self.assertEqual(
item['content'],
getattr(self, 'content_instance_%s' % number).html)
33 changes: 0 additions & 33 deletions icekit/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -539,39 +539,6 @@ def test_layoutpage_front_end(self):
response = self.client.get(self.layoutpage_1.get_absolute_url())
self.assertEqual(response.status_code, 200)

def test_page_api(self):
self.layoutpage_1.publish()
for j in range(20):
published_layoutpage = LayoutPage.objects.create(
author=self.super_user_1,
title='Test LayoutPage %s' % j,
layout=self.layout_1,
)
published_layoutpage.publish()

draft_layoutpage = LayoutPage.objects.create(
author=self.super_user_1,
title='Draft LayoutPage %s' % j,
layout=self.layout_1,
)

response = self.client.get(reverse('page-list'))
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data['results']), 5)
self.assertEqual(response.data['count'], 21)
response = self.client.get(reverse('page-detail', args=(self.layoutpage_1.id,)))
self.assertEqual(response.status_code, 404)
response = self.client.get(reverse('page-detail', args=(self.layoutpage_1.get_published().id,)))
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 6)
for key in response.data.keys():
if key is not 'content':
self.assertEqual(response.data[key],
getattr(self.layoutpage_1.get_published(), key))
self.assertEqual(len(response.data['content']), 3)
for number, item in enumerate(response.data['content'], 1):
self.assertEqual(item['content'], getattr(self, 'content_instance_%s' % number).html)


class TestValidators(WebTest):
def test_template_name(self):
Expand Down

0 comments on commit d2171a2

Please sign in to comment.