def test_trendingclient_get_byte_response(): mock_response = Response() mock_response.ok = True mock_response.content = mock_byte_content requests.get = MagicMock(return_value=mock_response) client = TrendingClient("example.com", "hello.json") content_ids = client.get("example") assert len(content_ids) == 3 assert content_ids[0] == 5 assert content_ids[1] == 4 assert content_ids[2] == 3
from requests import ConnectionError from django.conf import settings from elasticsearch_dsl import filter as es_filter from pageview_client.clients import TrendingClient from bulbs.content.models import Content DEFAULT_LIMIT = 10 trending_client = TrendingClient(settings.DIGEST_HOSTNAME, settings.DIGEST_ENDPOINT) def get_popular_ids(limit=DEFAULT_LIMIT): try: ids = trending_client.get(settings.DIGEST_SITE, offset=settings.DIGEST_OFFSET, limit=limit) return list(ids)[:limit] except ConnectionError: return None def popular_content(**kwargs): """ Use the get_popular_ids() to retrieve trending content objects. Return recent content on failure. """ limit = kwargs.get("limit", DEFAULT_LIMIT)
def test_trendingclient_get(): client = TrendingClient("example.com", "hello.json") content_ids = client.get("example") assert len(content_ids) == 3 for cid in (2, 0, 1): assert cid in content_ids