Beispiel #1
0
def test_get_kweek_mentions():
    query = " SELECT ID FROM KWEEK WHERE USERNAME = '******' LIMIT 1"
    kweek_id = db_manager.execute_query(query)[0]['id']
    actual_mention = actions.get_kweek_mentions(kweek_id)[0]
    expected_mention = Mention({'username': '******', 'indices': [25, 35]})
    assert isinstance(actual_mention, Mention)
    assert actual_mention.to_json() == expected_mention.to_json()

    query = "SELECT ID FROM KWEEK WHERE USERNAME = '******' LIMIT 1"
    kweek_id = db_manager.execute_query(query)[0]['id']
    mentions = actions.get_kweek_mentions(kweek_id)
    assert mentions == []
Beispiel #2
0
def test_get_kweek_statistics():
    query = "SELECT ID FROM KWEEK WHERE USERNAME = '******' LIMIT 1"
    kweek_id = db_manager.execute_query(query)[0]['id']

    authorized_username = '******'
    actual_kweek_statistics = actions.get_kweek_statistics(
        authorized_username, kweek_id)
    expected_kweek_statistics = {
        'number_of_likes': 1,
        'number_of_rekweeks': 1,
        'number_of_replies': 0,
        'liked_by_user': True,
        'rekweeked_by_user': True
    }
    assert actual_kweek_statistics == expected_kweek_statistics

    authorized_username = '******'
    actual_kweek_statistics = actions.get_kweek_statistics(
        authorized_username, kweek_id)
    expected_kweek_statistics = {
        'number_of_likes': 1,
        'number_of_rekweeks': 1,
        'number_of_replies': 0,
        'liked_by_user': False,
        'rekweeked_by_user': False
    }
    assert actual_kweek_statistics == expected_kweek_statistics
Beispiel #3
0
def test_get_kweek_hashtags():
    query = " SELECT ID FROM KWEEK WHERE USERNAME = '******' LIMIT 1"
    kweek_id = db_manager.execute_query(query)[0]['id']
    actual_hashtag = actions.get_kweek_hashtags(kweek_id)[0]
    query = "SELECT ID FROM HASHTAG WHERE TEXT='trend' LIMIT 1"
    hashtag_id = db_manager.execute_query(query)[0]['id']
    expected_hashtag = Hashtag({
        'id': hashtag_id,
        'indices': [25, 30],
        'text': 'trend'
    })
    assert isinstance(expected_hashtag, Hashtag)
    assert actual_hashtag.to_json() == expected_hashtag.to_json()

    query = "SELECT ID FROM KWEEK WHERE USERNAME = '******' LIMIT 1"
    kweek_id = db_manager.execute_query(query)[0]['id']
    hashtags = actions.get_kweek_hashtags(kweek_id)
    assert hashtags == []
Beispiel #4
0
def test_is_trend(trend_text, expected_output):
    query = """
                SELECT ID FROM HASHTAG WHERE TEXT = %s
            """
    data = (trend_text, )
    response = db_manager.execute_query(query, data)
    if not response:
        trend_id = -1
    else:
        trend_id = response[0]['id']
    assert actions.is_trend(trend_id) == expected_output
Beispiel #5
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
def get_id(from_username, to_username):
    query = """     SELECT ID, FROM_USERNAME, TO_USERNAME, CREATED_AT, TEXT, MEDIA_URL
                    FROM MESSAGE
                    WHERE FROM_USERNAME = %s
                    AND   TO_USERNAME = %s
                    
                    UNION
                    
                    SELECT ID, FROM_USERNAME, TO_USERNAME, CREATED_AT, TEXT, MEDIA_URL
                    FROM MESSAGE
                    WHERE FROM_USERNAME = %s
                    AND   TO_USERNAME = %s
                    
                    ORDER BY CREATED_AT DESC
                    LIMIT 1
            """
    data = (from_username, to_username, to_username, from_username)
    last_id = db_manager.execute_query(query, data)[0]['id']
    return last_id
Beispiel #7
0
def test_get_replies_and_mentions():
    expected_kweeks = []

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 3, third kweek'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    reply_info = actions.get_reply_to_info(kweek_id)
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2018-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 3, third kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user1', 'test_user3'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            0,
            'reply_info':
            reply_info,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 2, second kweek'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    reply_info = actions.get_reply_to_info(kweek_id)
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2014-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 2, second kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user1', 'test_user2'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            0,
            'reply_info':
            reply_info,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
                    SELECT ID FROM KWEEK WHERE USERNAME = '******'
                    AND TEXT = 'Test user 2, first kweek @test_user1 #trend'
                """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2011-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 2, first kweek @test_user1 #trend',
            'media_url':
            None,
            'user':
            actions.get_user('test_user1', 'test_user2'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            1,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            0,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    actual_kweeks = actions.get_replies_and_mentions_timeline_kweeks(
        'test_user1', None)

    for index, kweek in enumerate(actual_kweeks):
        assert expected_kweeks[index].to_json() == kweek.to_json()

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

    actual_kweeks = actions.get_replies_and_mentions_timeline_kweeks(
        'test_user2', None)
    assert actual_kweeks == []

    unseen_count = actions.get_replies_and_mentions_unseen_count('test_user1')
    assert unseen_count == 2

    actions.set_replies_and_mentions_as_seen('test_user1')
    unseen_count = actions.get_replies_and_mentions_unseen_count('test_user1')
    assert unseen_count == 0

    unseen_count = actions.get_replies_and_mentions_unseen_count('test_user2')
    assert unseen_count == 0
Beispiel #8
0
def test_get_trend_kweeks():
    expected_kweeks = []

    query = """
                    SELECT ID FROM KWEEK WHERE USERNAME = '******'
                    AND TEXT = 'Test user 3, first kweek #trend'
                """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2012-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 3, first kweek #trend',
            'media_url':
            None,
            'user':
            actions.get_user('test_user1', 'test_user3'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            1,
            'number_of_replies':
            0,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            True
        }))

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 2, first kweek @test_user1 #trend'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2011-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 2, first kweek @test_user1 #trend',
            'media_url':
            None,
            'user':
            actions.get_user('test_user1', 'test_user2'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            1,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            0,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    # Normal case
    query = """
            SELECT ID FROM HASHTAG WHERE TEXT = 'trend'
            """
    trend_id = db_manager.execute_query(query)[0]['id']
    actual_kweeks = actions.get_trend_kweeks('test_user1', trend_id, None)

    for index, kweek in enumerate(actual_kweeks):
        assert expected_kweeks[index].to_json() == kweek.to_json()

    # Invalid ID
    exception_caught = False
    try:
        actions.get_trend_kweeks('test_user1', trend_id, 'invalid_id')
    except ValueError:
        exception_caught = True
    assert exception_caught
Beispiel #9
0
def test_get_home_kweeks():
    expected_kweeks = []

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 3, third kweek'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    reply_info = actions.get_reply_to_info(kweek_id)
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2018-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 3, third kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user3', 'test_user3'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            0,
            'reply_info':
            reply_info,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 3, second kweek'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2017-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 3, second kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user3', 'test_user3'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            0,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
               SELECT ID FROM KWEEK WHERE USERNAME = '******'
               AND TEXT = 'Test user 1, third kweek'
           """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2016-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 1, third kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user3', 'test_user1'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            1,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 3, first kweek #trend'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2012-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 3, first kweek #trend',
            'media_url':
            None,
            'user':
            actions.get_user('test_user3', 'test_user3'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            1,
            'number_of_replies':
            0,
            'reply_info':
            None,
            'rekweek_info':
            RekweekInfo({
                'rekweeker_name': 'test1',
                'rekweeker_username': '******'
            }),
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 1, second kweek'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2013-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 1, second kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user3', 'test_user1'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            1,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 3, first kweek #trend'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2012-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 3, first kweek #trend',
            'media_url':
            None,
            'user':
            actions.get_user('test_user3', 'test_user3'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            1,
            'number_of_replies':
            0,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 1, first kweek'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2010-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 1, first kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user3', 'test_user1'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            1,
            'number_of_rekweeks':
            1,
            'number_of_replies':
            0,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            True,
            'rekweeked_by_user':
            True
        }))

    # Normal case
    actual_kweeks = actions.get_home_kweeks('test_user3', None, None)

    for index, kweek in enumerate(actual_kweeks):
        assert expected_kweeks[index].to_json() == kweek.to_json()

    # Invalid ID
    exception_caught = False
    try:
        actions.get_home_kweeks('test_user3', 'invalid_id', None)
    except ValueError:
        exception_caught = True
    assert exception_caught
Beispiel #10
0
def test_search_kweeks():
    expected_kweeks = []

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 3, second kweek'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2017-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 3, second kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user1', 'test_user3'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            0,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    query = """
                SELECT ID FROM KWEEK WHERE USERNAME = '******'
                AND TEXT = 'Test user 1, second kweek'
            """
    kweek_id = db_manager.execute_query(query)[0]['id']
    expected_kweeks.append(
        Kweek({
            'id':
            kweek_id,
            'created_at':
            datetime.strptime('2013-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'),
            'text':
            'Test user 1, second kweek',
            'media_url':
            None,
            'user':
            actions.get_user('test_user1', 'test_user1'),
            'mentions':
            actions.get_kweek_mentions(kweek_id),
            'hashtags':
            actions.get_kweek_hashtags(kweek_id),
            'number_of_likes':
            0,
            'number_of_rekweeks':
            0,
            'number_of_replies':
            1,
            'reply_info':
            None,
            'rekweek_info':
            None,
            'liked_by_user':
            False,
            'rekweeked_by_user':
            False
        }))

    actual_kweeks = actions.get_search_kweeks('test_user1', 'second', None)

    for index, kweek in enumerate(actual_kweeks):
        assert expected_kweeks[index].to_json() == kweek.to_json()

    # Invalid ID
    exception_caught = False
    try:
        actions.get_search_kweeks('test_user1', 'some search', 'invalid_id')
    except ValueError:
        exception_caught = True
    assert exception_caught

    actual_kweeks = actions.get_search_kweeks('test_user1', 'fourth', None)
    assert actual_kweeks == []
Beispiel #11
0
def test_insert_kweek():
    kweek_test_1 = Kweek({
        'id': 0,
        'created_at': datetime.utcnow(),
        'text': '#test1',
        'media_url': None,
        'user': User({
            'username': '******',
            'screen_name': 'test1',
            'profile_image_url': 'image_url',
            'following': False,
            'follows_you': False,
            'muted': False,
            'blocked': False
        }),
        'mentions': [
            Mention({
                'username': '******',
                'indices': [10, 16]}),
            Mention({
                'username': '******',
                'indices': [18, 20]},
            )
        ],
        'hashtags': [
            Hashtag({
                'text': '#sky',
                'indices': [10, 16],
                'id': 0
            })
        ],
        'number_of_likes': 0,
        'number_of_rekweeks': 0,
        'number_of_replies': 0,
        'reply_to': None,
        'rekweek_info': None,
        'liked_by_user': False,
        'rekweeked_by_user': False
    })
    kweek_test_2 = Kweek({
        'id': 0,
        'created_at': datetime.utcnow(),
        'text': '#test2',
        'media_url': None,
        'user': User({
            'username': '******',
            'screen_name': 'test1',
            'profile_image_url': 'image_url',
            'following': False,
            'follows_you': False,
            'muted': False,
            'blocked': False
        }),
        'mentions': [
            Mention({
                'username': '******',
                'indices': [10, 16]}),
            Mention({
                'username': '******',
                'indices': [18, 20]})
        ],
        'hashtags': [
            Hashtag({
                'text': '#sky',
                'indices': [10, 16],
                'id': 0
            })
        ],
        'number_of_likes': 0,
        'number_of_rekweeks': 0,
        'number_of_replies': 0,
        'reply_to': None,
        'rekweek_info': None,
        'liked_by_user': False,
        'rekweeked_by_user': False
    })
    kweek_test_3 = Kweek({
        'id': 0,
        'created_at': datetime.utcnow(),
        'text': '#test3',
        'media_url': None,
        'user': User({
            'username': '******',
            'screen_name': 'test1',
            'profile_image_url': 'image_url',
            'following': False,
            'follows_you': False,
            'muted': False,
            'blocked': False
        }),
        'mentions': [
            Mention({
                'username': '******',
                'indices': [10, 16]}),
            Mention({
                'username': '******',
                'indices': [18, 20]},
            )
        ],
        'hashtags': [
            Hashtag({
                'text': '#sky',
                'indices': [10, 16],
                'id': 0
            })
        ],
        'number_of_likes': 0,
        'number_of_rekweeks': 0,
        'number_of_replies': 0,
        'reply_to': None,
        'rekweek_info': None,
        'liked_by_user': False,
        'rekweeked_by_user': False
    })
    kweek_test_4 = Kweek({
        'id': 0,
        'created_at': datetime.utcnow(),
        'text': '#test1',
        'media_url': None,
        'user': User({
            'username': '******',
            'screen_name': 'test1',
            'profile_image_url': 'image_url',
            'following': False,
            'follows_you': False,
            'muted': False,
            'blocked': False
        }),
        'mentions': [
            Mention({
                'username': '******',
                'indices': [10, 16]}),
            Mention({
                'username': '******',
                'indices': [18, 20]},
            )
        ],
        'hashtags': [
            Hashtag({
                'text': '#sky',
                'indices': [10, 16],
                'id': 0
            })
        ],
        'number_of_likes': 0,
        'number_of_rekweeks': 0,
        'number_of_replies': 0,
        'reply_to': None,
        'rekweek_info': None,
        'liked_by_user': False,
        'rekweeked_by_user': False
    })
    query: str = """SELECT ID FROM HASHTAG WHERE TEXT=%s  """
    data = ('#sky',)
    hid = db_manager.execute_query(query, data)
    if len(hid) != 0:
        query: str = """DELETE FROM HASHTAG WHERE ID=%s  """
        data = (hid[0]['id'],)
        db_manager.execute_query_no_return(query, data)
        query: str = """DELETE FROM KWEEK_HASHTAG WHERE HASHTAG_ID=%s  """
        data = (hid[0]['id'],)
        db_manager.execute_query_no_return(query, data)
    query: str = """SELECT COUNT(*) FROM HASHTAG """
    first_count = db_manager.execute_query(query)[0]['count']
    actions.insert_kweek(kweek_test_1)
    query: str = """SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """
    kid = db_manager.execute_query(query)[0]['id']
    print("kweek id", kid)
    query: str = """SELECT ID FROM HASHTAG ORDER BY ID DESC LIMIT 1 """
    hid = db_manager.execute_query(query)[0]['id']
    print("hahstag id ", hid)
    query: str = """SELECT ID,TEXT,media_url,username,reply_to FROM KWEEK WHERE ID= %s """
    data = (kid,)
    resulted_kweek = db_manager.execute_query(query, data)[0]
    print("kweek", resulted_kweek)
    query: str = """SELECT * FROM MENTION WHERE  KWEEK_ID= %s"""
    data = (kid,)
    resulted_mention = db_manager.execute_query(query, data)[0]
    query: str = """SELECT TEXT, KWEEK_ID, HASHTAG_ID, STARTING_INDEX, ENDING_INDEX 
     FROM KWEEK_HASHTAG JOIN HASHTAG  ON ID = HASHTAG_ID WHERE KWEEK_ID  = %s"""
    data = (kid,)
    resulted_hashtag = db_manager.execute_query(query, data)[0]
    print("hashtag", resulted_hashtag)
    expected_mention = {'kweek_id': kid, 'username': '******', 'starting_index': 10,
                        'ending_index': 16}
    expected_hahstag = {'text': '#sky', 'kweek_id': kid, 'hashtag_id': hid,
                        'starting_index': 10, 'ending_index': 16}
    expected_kweek = {'id': kid, 'text': '#testtest',
                      'media_url': None, 'username': '******', 'reply_to': None}
    assert expected_kweek == resulted_kweek
    assert expected_hahstag == resulted_hashtag
    assert expected_mention == resulted_mention
    query: str = """SELECT COUNT(*) FROM HASHTAG """
    second_count = db_manager.execute_query(query)[0]['count']
    assert (second_count - first_count) == 1
    check, message = actions.insert_kweek(kweek_test_2)
    assert message == 'success'
    query: str = """SELECT COUNT(*) FROM HASHTAG """
    third_count = db_manager.execute_query(query)[0]['count']
    assert third_count - second_count == 0
    check, message = actions.insert_kweek(kweek_test_3)
    assert message == 'Repeated mention in the same kweek'
    check, message = actions.insert_kweek(kweek_test_4)
    assert message == 'the user mentioned does not exist in the database'
Beispiel #12
0
def test_get_kweek_with_replies():
    # first kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test1', None, 'test_user1', None)
    db_manager.execute_query_no_return(query, data)
    kid1 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag1---',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag1---',)
    hid1 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid1, hid1, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    query: str = """INSERT INTO MENTION VALUES(%s,%s,%s,%s) """
    data = (kid1, 'test_user2', 10, 15)
    db_manager.execute_query_no_return(query, data)

    query: str = """INSERT INTO REKWEEK VALUES(%s,%s,%s) """
    data = ('test_user2', kid1, '01-01-2010')
    db_manager.execute_query_no_return(query, data)

    query: str = """INSERT INTO FAVORITE VALUES(%s,%s,%s) """
    data = ('test_user2', kid1, '01-01-2010')
    db_manager.execute_query_no_return(query, data)

    # second kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test2', None, 'test_user2', kid1)
    db_manager.execute_query_no_return(query, data)
    kid2 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag2---',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag2---',)
    hid2 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid2, hid2, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    query: str = """INSERT INTO FAVORITE VALUES(%s,%s,%s) """
    data = ('test_user1', kid2, '01-01-2010')
    db_manager.execute_query_no_return(query, data)

    # third kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test3', None, 'test_user3', kid1)
    db_manager.execute_query_no_return(query, data)
    kid3 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag3---',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag3---',)
    hid3 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid3, hid3, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    query: str = """INSERT INTO FAVORITE VALUES(%s,%s,%s) """
    data = ('test_user3', kid3, '01-01-2010')
    db_manager.execute_query_no_return(query, data)

    kweek_test1 = Kweek({
        'id': int(kid1),
        'created_at': datetime(2010, 1, 1, 0, 0),
        'text': 'test1',
        'media_url': None,
        'user': User({
            'username': '******',
            'screen_name': 'test1',
            'profile_image_url': 'image_url',
            'following': True,
            'follows_you': True,
            'muted': False,
            'blocked': False
        }),
        'mentions': [
            Mention({
                'username': '******',
                'indices': [10, 15]})

        ],
        'hashtags': [
            Hashtag({
                'text': 'hashtag1---',
                'indices': [0, 9],
                'id': hid1
            })
        ],
        'number_of_likes': 1,
        'number_of_rekweeks': 1,
        'number_of_replies': 2,
        'reply_to': None,
        'rekweek_info': None,
        'liked_by_user': False,
        'rekweeked_by_user': False
    })
    replies_test1 = [
        Kweek({
            'id': int(kid2),
            'created_at': datetime(2010, 1, 1, 0, 0),
            'text': 'test2',
            'media_url': None,
            'user': User({
                'username': '******',
                'screen_name': 'test2',
                'profile_image_url': 'image_url',
                'following': False,
                'follows_you': True,
                'muted': False,
                'blocked': False
            }),
            'mentions': [
            ],
            'hashtags': [
                Hashtag({
                    'text': 'hashtag2---',
                    'indices': [0, 9],
                    'id': hid2
                })
            ],
            'number_of_likes': 1,
            'number_of_rekweeks': 0,
            'number_of_replies': 0,
            'reply_to': int(kid1),
            'rekweek_info': None,
            'liked_by_user': False,
            'rekweeked_by_user': False
        }), Kweek({
            'id': int(kid3),
            'created_at': datetime(2010, 1, 1, 0, 0),
            'text': 'test3',
            'media_url': None,
            'user': User({
                'username': '******',
                'screen_name': 'test3',
                'profile_image_url': 'image_url',
                'following': False,
                'follows_you': False,
                'muted': False,
                'blocked': False
            }),
            'mentions': [
            ],
            'hashtags': [
                Hashtag({
                    'text': 'hashtag3---',
                    'indices': [0, 9],
                    'id': hid3
                })
            ],
            'number_of_likes': 1,
            'number_of_rekweeks': 0,
            'number_of_replies': 0,
            'reply_to': int(kid1),
            'rekweek_info': None,
            'liked_by_user': True,
            'rekweeked_by_user': False
        }),

    ]
    check_replies, message, k, r = actions.get_kweek_with_replies(kid1, 'test_user3')
    print('kwweeek')
    print(k)
    print('replies')
    print(r)
    assert True == check_replies
    assert message == 'success'
    assert k.to_json() == kweek_test1.to_json()
    for n, i in enumerate(r):
        assert i.to_json() == replies_test1[n].to_json()
Beispiel #13
0
def test_delete_kweek():
    # first test -  first kweek#

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test1', None, 'hagar', None)
    db_manager.execute_query_no_return(query, data)
    kid1 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag1',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag1',)
    hid1 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid1, hid1, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    actions.delete_kweek(kid1, 'hagar')

    query: str = """SELECT * FROM KWEEK WHERE  ID= %s"""
    data = (kid1,)
    response = db_manager.execute_query(query, data)
    assert response == []
    # second test - first kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test2', None, 'hagar', None)
    db_manager.execute_query_no_return(query, data)
    kid1 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag2',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag2',)
    hid1 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid1, hid1, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    # second test- second kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test2', None, 'hagar', kid1)
    db_manager.execute_query_no_return(query, data)
    kid2 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag2',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag2',)
    hid2 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid2, hid2, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    # second test- third kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test2', None, 'hagar', None)
    db_manager.execute_query_no_return(query, data)
    kid3 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag2',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag2',)
    hid3 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid3, hid3, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    actions.delete_kweek(kid1, 'hagar')

    query: str = """SELECT * FROM KWEEK WHERE  ID= %s"""
    data = (kid1,)
    response = db_manager.execute_query(query, data)
    assert response == []

    query: str = """SELECT TEXT FROM HASHTAG  WHERE TEXT= %s"""
    data = ('hashtag2',)
    response = db_manager.execute_query(query, data)
    assert response != []

    # third test - first kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test3', None, 'hagar', None)
    db_manager.execute_query_no_return(query, data)
    kid1 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag3',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag3',)
    hid1 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid1, hid1, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    # third test- second kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test3', None, 'hagar', kid1)
    db_manager.execute_query_no_return(query, data)
    kid2 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag3',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag3',)
    hid2 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid2, hid2, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    actions.delete_kweek(kid1, 'hagar')

    query: str = """SELECT * FROM KWEEK WHERE  ID= %s"""
    data = (kid1,)
    response = db_manager.execute_query(query, data)
    assert response == []

    query: str = """SELECT TEXT FROM HASHTAG  WHERE TEXT= %s"""
    data = ('hashtag3',)
    response = db_manager.execute_query(query, data)
    assert response == []

    # fourth test- first kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test4', None, 'hagar', None)
    db_manager.execute_query_no_return(query, data)
    kid1 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag4',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag4',)
    hid1 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid1, hid1, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    # fourth test- second kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test4', None, 'test_user1', kid1)
    db_manager.execute_query_no_return(query, data)
    kid2 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag4',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag4',)
    hid2 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid2, hid2, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    actions.delete_kweek(kid2, 'hagar')

    query: str = """SELECT * FROM KWEEK WHERE  ID= %s"""
    data = (kid2,)
    response = db_manager.execute_query(query, data)
    assert response == []

    # fifth test- first kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test5', None, 'hagar', None)
    db_manager.execute_query_no_return(query, data)
    kid1 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag5',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag5',)
    hid1 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid1, hid1, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    # fifth test- second kweek #

    query: str = """INSERT INTO  KWEEK (CREATED_AT,TEXT,MEDIA_URL,USERNAME,REPLY_TO) VALUES(%s, %s, %s, %s,%s) """
    data = ('01-01-2010', 'test5', None, 'test_user1', kid1)
    db_manager.execute_query_no_return(query, data)
    kid2 = str(db_manager.execute_query("""SELECT ID FROM KWEEK ORDER BY ID DESC LIMIT 1 """)[0]['id'])

    query: str = """INSERT INTO HASHTAG(TEXT) VALUES (%s) """
    data = ('hashtag5',)
    db_manager.execute_query_no_return(query, data)

    query: str = """SELECT ID FROM HASHTAG WHERE TEXT = %s """
    data = ('hashtag5',)
    hid2 = db_manager.execute_query(query, data)[0]['id']

    query: str = """INSERT INTO KWEEK_HASHTAG VALUES (%s,%s,%s,%s)"""
    data = (kid2, hid2, 0, 9,)
    db_manager.execute_query_no_return(query, data)

    actions.delete_kweek(kid2, 'test_user2')

    query: str = """SELECT * FROM KWEEK WHERE  ID= %s"""
    data = (kid2,)
    response = db_manager.execute_query(query, data)
    assert response != []