Esempio n. 1
0
def get_all_trends(last_retrieved_trend_id):
    """
        Gets all the hashtags.


        *Parameters:*
            - *last_retrieved_kweek_id (string)*: The id of the last retrieved trend (used to fetch more). Nullable.

        *Returns:*
            - *List of models.Hashtag objects*
    """
    if last_retrieved_trend_id is not None:
        try:
            last_retrieved_trend_id = int(last_retrieved_trend_id)
        except ValueError:
            raise
    database_trends = query_factory.get_all_trends()
    # Paginate the results
    try:
        database_trends = paginate(dictionaries_list=database_trends, required_size=20,
                                   start_after_key='id', start_after_value=last_retrieved_trend_id)
    except TypeError as E:
        print(E)
        raise
    if database_trends is None:
        return None
    trends = []
    for database_trend in database_trends:
        trend = {
            'id': database_trend['id'],
            'text': database_trend['text'],
            'number_of_kweeks': database_trend['number_of_kweeks']
        }
        trends.append(Trend(trend))
    return trends
Esempio n. 2
0
def test_get_all_trends():
    expected_trends = []

    query = """
                SELECT ID FROM HASHTAG WHERE TEXT = 'trend'
            """
    trend_id = db_manager.execute_query(query)[0]['id']
    expected_trends.append(
        Trend({
            'id': trend_id,
            'text': 'trend',
            'number_of_kweeks': 2
        }))

    query = """
                    SELECT ID FROM HASHTAG WHERE TEXT = 'trend2'
                """
    trend_id = db_manager.execute_query(query)[0]['id']
    expected_trends.append(
        Trend({
            'id': trend_id,
            'text': 'trend2',
            'number_of_kweeks': 0
        }))

    actual_trends = actions.get_all_trends(None)

    for index, kweek in enumerate(actual_trends):
        assert expected_trends[index].to_json() == kweek.to_json()

    # Invalid ID
    exception_caught = False
    try:
        actions.get_all_trends('invalid_id')
    except ValueError:
        exception_caught = True
    assert exception_caught