Ejemplo n.º 1
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 22
0
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
Ejemplo n.º 25
0
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