Add source, add tests
This commit is contained in:
parent
6933e10a7f
commit
03a8b35466
|
|
@ -8,6 +8,7 @@ query NewsTeasers {
|
|||
imageUrl
|
||||
newsArticleUrl
|
||||
date
|
||||
imageSource
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue