def test_actor_second_name_correction(): output1 = index.search_actor(index_dir, "Victor Argo") original_input = mock.builtins.input mock.builtins.input = lambda _: "1" output2 = index.search_actor(index_dir, "arKo") assert output1['films'] == output2['films'] mock.builtins.input = original_input
def test_count_actor_10(): output = index.search_actor(index_dir, "Sarah Jessica Parker") assert len(output['films'].split('@')) == 42
def test_count_actor_9(): original_input = mock.builtins.input mock.builtins.input = lambda _: "1" output = index.search_actor(index_dir, "Chuck Norris") assert len(output['films'].split('@')) == 40 mock.builtins.input = original_input
def test_count_actor_17(): output = index.search_actor(index_dir, "Bradley Cooper") assert len(output['films'].split('@')) == 37
def test_actor_exit(): original_input = mock.builtins.input mock.builtins.input = lambda _: "e" output = index.search_actor(index_dir, "viKtor arKo") assert output == -2 mock.builtins.input = original_input
def test_not_case_sensitive_1(): output1 = index.search_actor(index_dir, "Victor Argo") output2 = index.search_actor(index_dir, "victor argo") assert output1 == output2
def test_count_actor_15(): output = index.search_actor(index_dir, "Uma Thurman") assert len(output['films'].split('@')) == 54
def test_count_actor_13(): output = index.search_actor(index_dir, "Demi Moore") assert len(output['films'].split('@')) == 44
def test_count_actor_3(): output = index.search_actor(index_dir, "Ashton Kutcher") assert len(output['films'].split('@')) == 28
def test_count_actor_2(): output = index.search_actor(index_dir, "Christian Bale") assert len(output['films'].split('@')) == 49
def test_count_actor_1(): output = index.search_actor(index_dir, "Tom Hardy") assert len(output['films'].split('@')) == 40
def test_count_actor_20(): output = index.search_actor(index_dir, "Scarlett Johansson") assert len(output['films'].split('@')) == 43
def test_count_actor_19(): output = index.search_actor(index_dir, "Megan Fox") assert len(output['films'].split('@')) == 18
def test_count_actor_18(): output = index.search_actor(index_dir, "Katie Holmes") assert len(output['films'].split('@')) == 27
def test_count_actor_11(): output = index.search_actor(index_dir, "Zac Efron") assert len(output['films'].split('@')) == 26
def test_count_actor_12(): output = index.search_actor(index_dir, "Cameron Diaz") assert len(output['films'].split('@')) == 51
def test_count_actor_4(): output = index.search_actor(index_dir, "Robert Downey Jr.") assert len(output['films'].split('@')) == 72
def test_count_actor_14(): output = index.search_actor(index_dir, "Eddie Murphy") assert len(output['films'].split('@')) == 50
def test_count_actor_5(): output = index.search_actor(index_dir, "Johnny Depp") assert len(output['films'].split('@')) == 66
def test_count_actor_16(): original_input = mock.builtins.input mock.builtins.input = lambda _: "1" output = index.search_actor(index_dir, "Jackie Chan") assert len(output['films'].split('@')) == 131 mock.builtins.input = original_input
def test_count_actor_6(): output = index.search_actor(index_dir, "Brad Pitt") assert len(output['films'].split('@')) == 63
def test_not_case_sensitive_2(): output1 = index.search_actor(index_dir, "Victor Argo") output2 = index.search_actor(index_dir, "ViCtOr aRgO") assert output1 == output2
def test_count_actor_7(): output = index.search_actor(index_dir, "Robert De Niro") assert len(output['films'].split('@')) == 105
def test_count_actor_8(): output = index.search_actor(index_dir, "Charlie Sheen") assert len(output['films'].split('@')) == 68
def search(index_dir): not_end = "y" while not_end == "y": print("\nrun SEARCH...") print("\trun search...") cmd = input("\nYou want to search by actors or movie? [a|m]: ") if cmd == "m": name = input("\nEnter name of movie: ") actors = index.search_film(index_dir, name) if not actors or actors == -1: print("I didn't find the movie") not_end = input("\nDo you want to continue? [y|n]: ") continue if actors != -2: print("\nIn film " + name + " played:") for a in actors: print("\t" + a) else: break elif cmd == "a": actors = [] i = 0 pref_names = [] pref_name = "" while i < 2: if i == 0: prefix = 'first' else: prefix = 'second' name = input("\nEnter " + prefix + " name: ") if actors and name.upper() in pref_names: print("\nWARN: actor " + pref_name + " and actor " + name + " can be the same person!") actors.append(index.search_actor(index_dir, name)) if actors[i] == -1 or actors[i] == -2: break pref_names = actors[i]['names'].upper().split('\t') pref_name = name i += 1 if i != 2: if actors[i] == -2: not_end = input("\nDo you want to continue? [y|n]: ") continue name_1 = "" name_2 = "" actor_1 = [] actor_2 = [] films = [] for a in actors: a['data'][1] = datetime.now().strftime( "%Y-%m-%d") if a['data'][1] == "NOW" else a['data'][1] if i == 2: actor_1 = a name_1 = a['query'] else: actor_2 = a name_2 = a['query'] i -= 1 if datetime.strptime(actor_1['data'][0], '%Y-%m-%d') <= datetime.strptime(actor_2['data'][1], '%Y-%m-%d') \ and datetime.strptime(actor_2['data'][0], '%Y-%m-%d') <= datetime.strptime(actor_1['data'][1], '%Y-%m-%d'): for film_1 in actor_1['films'].split('@'): for film_2 in actor_2['films'].split('@'): if film_1.split('\t')[0] == film_2.split('\t')[0]: films.append(film_1[1:]) break if films: print("\nActors: \n\t" + name_1 + " -> " + ", ".join(actor_1['names'].split('\t')) + "\n\t" + name_2 + " -> " + ", ".join(actor_2['names'].split('\t')) + "\nplayed together in films:") for f in films: string_1 = "" string_2 = "" if len(f) > 1: string_1 = f.split('\t')[1] if len(f) > 2: string_2 = ", ".join(f.split('\t')[2:]) print("\t" + string_1 + " -> " + string_2) else: actor_1_films = [] actor_2_films = [] for f in actor_1['films'].split('@'): if len(f.split('\t')) > 2: actor_1_films.append(f.split('\t')[1]) for f in actor_2['films'].split('@'): if len(f.split('\t')) > 2: actor_2_films.append(f.split('\t')[1]) print("\nActors played in:\n\t" + name_1 + " -> " + ', '.join(actor_1_films) + "\n\t" + name_2 + " -> " + ', '.join(actor_2_films) + "\nActors did not play together") else: date_1 = "born: " + actor_1['data'][0] + " died: " + actor_1[ 'data'][1] date_2 = "born: " + actor_2['data'][0] + " died: " + actor_2[ 'data'][1] print( "\nActors:\n\t" + name_1 + " -> " + date_1 + "\n\t" + name_2 + " -> " + date_2 + "\nActors could not play together because they did not live at the same time" ) else: print("ERROR: Unknown input") not_end = input("\nDo you want to continue? [y|n]: ") return not_end