Add source, add tests

This commit is contained in:
Christian Cueni 2020-05-25 12:41:12 +02:00
parent 6933e10a7f
commit 03a8b35466
6 changed files with 66 additions and 10 deletions

View File

@ -8,6 +8,7 @@ query NewsTeasers {
imageUrl
newsArticleUrl
date
imageSource
}
}
}

View File

@ -0,0 +1,21 @@
import datetime
import random
import factory
from factory.fuzzy import FuzzyDateTime
from pytz import UTC
from core.factories import fake, fake_title
from newsteaser.models import NewsTeaser
class NewsTeaserFactory(factory.django.DjangoModelFactory):
class Meta:
model = NewsTeaser
title = factory.LazyAttribute(lambda x: fake_title(max_words=2))
description = factory.LazyAttribute(lambda x: fake.sentence(nb_words=random.randint(4, 8)))
image_url = factory.LazyAttribute(lambda x: 'https://picsum.photos/600/400/?random')
news_article_url = factory.LazyAttribute(lambda x: 'https://myskillbox-abu-news.webflow.io/brexit')
date = FuzzyDateTime(datetime.datetime(2020, 1, 1, tzinfo=UTC))
image_source = factory.LazyAttribute(lambda x: 'https://picsum.photos/600/400/?random')

View File

@ -17,4 +17,4 @@ class AllNewsTeasersQuery(object):
news_teasers = DjangoFilterConnectionField(NewsTeaserNode)
def resolve_news_teasers(self, info, **kwargs):
return NewsTeaser.objects.all()
return NewsTeaser.objects.all().order_by('order_id')

View File

View File

@ -0,0 +1,43 @@
from unittest import TestCase
from graphene.test import Client
from api.schema_public import schema
from newsteaser.factories import NewsTeaserFactory
class NewsTeaserTests(TestCase):
def setUp(self):
self.news_teaser1 = NewsTeaserFactory(order_id=1)
self.news_teaser2 = NewsTeaserFactory(order_id=2)
self.client = Client(schema=schema)
def make_query(self):
query = '''
query NewsTeasers {
newsTeasers {
edges {
node {
id
description
title
imageUrl
newsArticleUrl
date
imageSource
}
}
}
}
'''
return self.client.execute(query)
def test_public_can_get_news_teaser(self):
result = self.make_query()
self.assertIsNone(result.get('errors'))
news_teasers = result.get('data').get('newsTeasers').get('edges')
self.assertEqual(news_teasers[0].get('node').get('title'), self.news_teaser1.title)
self.assertEqual(news_teasers[1].get('node').get('title'), self.news_teaser2.title)

View File

@ -1,12 +1,3 @@
# -*- coding: utf-8 -*-
#
# ITerativ GmbH
# http://www.iterativ.ch/
#
# Copyright (c) 2019 ITerativ GmbH. All rights reserved.
#
# Created on 2019-07-24
# @author: chrigu <christian.cueni@iterativ.ch>
from django.contrib.sessions.middleware import SessionMiddleware
from django.test import TestCase, RequestFactory
from graphene.test import Client