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 == []
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
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 == []
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
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
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
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
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
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 == []
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'
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()
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 != []