Last active
February 22, 2016 20:48
-
-
Save t-io/35943b0b675d6761167a to your computer and use it in GitHub Desktop.
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
from rest_framework.test import APITransactionTestCase | |
from django.test import TestCase, override_settings | |
from django.core.urlresolvers import reverse | |
from django.core.cache import cache | |
from django.conf import settings | |
from django.utils import timezone | |
from ad_on.users.tests.factories import UserFactory | |
from ..models import Card, Device, Log | |
from ..enums import ContentType | |
from .factories import AppFactory, CardFactory, AppCardFactory, ArticleFactory, VideoFactory, HtmlFactory, DeviceFactory | |
class AppConfigTests(APITransactionTestCase): | |
def setUp(self): | |
self.app = AppFactory.create(name='Config Test App') | |
self.user = UserFactory.create(username='test_user') | |
self.app.account.add(self.user) | |
def test_card_list_count(self): | |
""" Test card-list length for AppConfig endpoint | |
""" | |
self.client.credentials(HTTP_AUTHORIZATION='App-Token ' + self.app.app_key) | |
CardFactory.create_batch(5, app=self.app, content_type=ContentType.article.value) | |
for card in Card.objects.filter(app=self.app): | |
AppCardFactory.create(card=card, app=self.app) | |
url = reverse('api_1:app-config') | |
response = self.client.get(url) | |
self.assertEqual(len(response.data['cards']), 5) | |
@override_settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}) | |
def test_caching(self): | |
"""Test caching for AppConfig endpoint | |
""" | |
# create a card | |
self.client.credentials(HTTP_AUTHORIZATION='App-Token ' + self.app.app_key) | |
url = reverse('api_1:app-config') | |
card = CardFactory.create(content_type=ContentType.article.value) | |
ArticleFactory.create(card=card) | |
AppCardFactory.create(card=card, content_type=ContentType.article.value, app=self.app, position=1) | |
response = self.client.get(url) | |
self.assertEqual(len(response.data['cards']), 1) | |
# create another card and check if cache is active and only one card is returned | |
card_2 = CardFactory.create(content_type=ContentType.article.value) | |
ArticleFactory.create(card=card_2) | |
AppCardFactory.create(card=card_2, content_type=ContentType.article.value, app=self.app, position=2) | |
response = self.client.get(url) | |
self.assertEqual(len(response.data['cards']), 1) # <-- here it fails! (2 != 1) | |
# check if after clearing the cache both cards are returned | |
cache.clear() | |
response = self.client.get(url) | |
self.assertEqual(len(response.data['cards']), 2) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment