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
Example #2
0
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