def search(keyword): search_word = str(keyword).lower() metadata = article_metadata() metadata_list = [] for row in range(0, len(metadata)): for col in range(0, len(metadata[row])): set_data = metadata[row][4] if search_word in set_data: metadata_list.append(metadata[row][:4]) return metadata_list
def search(keyword): if keyword == '': return [] metadata_lists = [] for metadata in article_metadata(): for item in metadata[4]: if keyword.lower() == item.lower(): metadata_lists.append(metadata[0:4]) return metadata_lists
def search(keyword): word = str(keyword) word = word.lower() data = article_metadata() metadata = [] for row in range(0, len(data)): for col in range(0, len(data[row])): data_list = data[row][4] if word in data_list: metadata.append(data[row][:4]) return metadata
def multiple_keywords(keyword, metadata): word = str(keyword) word = word.lower() data = article_metadata() first_search = metadata final_search = [] second_search = [] for row in range(0, len(data)): for col in range(0, len(data[row])): data_list = data[row][4] if word in data_list: second_search.append(data[row][:4]) final_search = first_search + second_search return final_search
from search import search, article_length, article_count, random_article, favorite_author, title_author, multiple_keywords, display_result from search_tests_helper import get_print, print_basic, print_advanced, print_advanced_option from wiki import article_metadata from unittest.mock import patch # List of all available article titles for this search engine # The benefit of using this is faster code - article_metadata() will execute # every time it gets called, but if the return value of it gets stored it into # a variable, the function will not need to run every time the list of available # articles is needed. METADATA = article_metadata() # Storing into a variable so don't need to copy and paste long list every time # All given examples of metadata # Pass a copy of any of these lists when passing as an argument into a function, # otherwise the original list (ie the one stored in the variable) is going to be # mutated. To make a copy, you may use the .copy() function for the variable holding # your search result (ie pass DOG.copy() into the function you want to use DOG) DOG = [['Black dog (ghost)', 'SmackBot', 1220471117, 14746], ['Mexican dog-faced bat', 'AnomieBOT', 1255316429, 1138], ['Dalmatian (dog)', 'J. Spencer', 1207793294, 26582], ['Guide dog', 'Sarranduin', 1165601603, 7339], ['Sun dog', 'Hellbus', 1208969289, 18050]] TRAVEL = [['Time travel', 'Thug outlaw69', 1140826049, 35170]] MUSIC = [['List of Canadian musicians', 'Bearcat', 1181623340, 21023], ['French pop music', 'Brandon', 1172208041, 5569], ['Noise (music)', 'Epbr123', 1194207604, 15641], ['1922 in music', 'Jafeluv', 1242717698, 11576], ['1986 in music', 'Michael', 1048918054, 6632], ['Kevin Cadogan', 'Renesis', 1144136316, 3917], ['2009 in music', 'SE KinG', 1235133583, 69451], ['Rock music', 'Sabrebd', 1258069053, 119498], ['Lights (musician)', 'Espo3699', 1213914297, 5898], ['Tim Arnold (musician)', 'Sohohobo', 1181480380, 4551], ['Old-time music', 'Badagnani', 1124771619, 12755], ['Arabic music', 'Badagnani', 1209417864, 25114], ['Joe Becker (musician)', 'Gary King', 1203234507, 5842], ['Richard Wright (musician)', 'Bdubiscool', 1189536295, 16185], ['Voice classification in non-classical music', 'Iridescent', 1198092852, 11280], ['1936 in music', 'JohnRogers', 1243745950, 23417], ['1962 in country music', 'Briguy52748', 1249862464, 7954], ['List of dystopian music, TV programs, and games', 'Notinasnaid', 1165317338, 13458], ['Steve Perry (musician)', 'Woohookitty', 1254812045, 22204], ['David Gray (musician)', 'RattleandHum', 1159841492, 7203], ['Alex Turner (musician)', 'CambridgeBayWeather', 1187010135, 9718], ['List of gospel musicians', 'Absolon', 1197658845, 3805], ['Indian classical music', 'Davydog', 1222543238, 9503], ['1996 in music', 'Kharker', 1148585201, 21688], ['Traditional Thai musical instruments', 'Badagnani', 1191830919, 6775], ['2006 in music', 'Suduser85', 1171547747, 105280], ['Tony Kaye (musician)', 'Bondegezou', 1141489894, 8419], ['Texture (music)', 'J Lorraine', 1161070178, 3626], ['2007 in music', 'Squilly', 1169248845, 45652], ['2008 in music', 'Ba11innnn', 1217641857, 107605]] PROGRAMMING = [['C Sharp (programming language)', 'Eaglizard', 1232492672, 52364], ['Python (programming language)', 'Lulu of the Lotus-Eaters', 1137530195, 41571], ['Lua (programming language)', 'Makkuro', 1113957128, 0], ['Covariance and contravariance (computer science)', 'Wakapop', 1167547364, 7453], ['Personal computer', 'Darklock', 1220391790, 45663], ['Ruby (programming language)', 'Hervegirod', 1193928035, 30284]] SOCCER = [['Spain national beach soccer team', 'Pegship', 1233458894, 1526], ['Will Johnson (soccer)', 'Mayumashu', 1218489712, 3562], ['Steven Cohen (soccer)', 'Scouselad10', 1237669593, 2117]] PHOTOGRAPHY = [['Digital photography', 'Mintleaf', 1095727840, 18093]] SCHOOL = [['Edogawa, Tokyo', 'Ciphers', 1222607041, 4526], ['Fisk University', 'NerdyScienceDude', 1263393671, 16246], ['Annie (musical)', 'Piano non troppo', 1223619626, 27558], ['Alex Turner (musician)', 'CambridgeBayWeather', 1187010135, 9718]]