This repository has been archived by the owner on Feb 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#212 Consolidate unit tests for images and pages APIs
Move all unit tests targeting API endpoints into the new `icekit.api` app.
- Loading branch information
Showing
2 changed files
with
91 additions
and
33 deletions.
There are no files selected for viewing
This file contains 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
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) |
This file contains 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