コード例 #1
0
def load_movies_and_genres_and_directors_and_actors(data_path, repo):
    for row in read_csv_file(os.path.join(data_path, 'Data1000Movies.csv')):
        title = row[1]
        release_year = int(row[6])
        runtime = int(row[7])
        description = row[3]

        genre_list = row[2].split(',')
        for i in range(len(genre_list)):
            genre_list[i] = Genre(genre_list[i])

        director = Director(row[4])

        actor_list = row[5].split(',')
        for i in range(len(actor_list)):
            actor_list[i] = Actor(actor_list[i])
        for actor_obj in actor_list:
            for colleague in actor_list:
                if colleague not in actor_obj.actor_colleagues:
                    actor_obj.add_actor_colleague(colleague)

        rating = float(row[8])
        votes = int(row[9])

        if row[10] == "N/A":
            revenue = "N/A"
        else:
            revenue = float(row[10])

        if row[11] == "N/A":
            metascore = "N/A"
        else:
            metascore = int(row[11])

        id = int(row[0])

        # create movie object and assign everything
        movie = Movie(title, release_year)
        movie.actors = actor_list
        movie.genres = genre_list
        movie.director = director
        movie.description = description
        movie.runtime_minutes = runtime
        movie.rating = rating
        movie.votes = votes
        movie.revenue = revenue
        movie.metascore = metascore
        movie.id = id

        repo.add_movie(movie)
        for genre in movie.genres:
            repo.add_genre(genre)
        for actor in movie.actors:
            repo.add_actor(actor)
        repo.add_director(movie.director)
コード例 #2
0
def test_movie_methods():

    #repr
    movie1 = Movie("Moana", 2016)
    assert movie1.__repr__() == '<Movie Moana, 2016>'
    movie2 = Movie("", 2016)
    assert movie2.__repr__() == '<Movie None, 2016>'
    movie3 = Movie(24, 2006)
    assert movie3.__repr__() == '<Movie None, 2006>'
    movie4 = Movie("Moana", "")
    assert movie4.__repr__() == '<Movie Moana, None>'
    movie5 = Movie("Moana", 1888)
    assert movie5.__repr__() == '<Movie Moana, None>'
    movie6 = Movie("", "")
    assert movie6.__repr__() == '<Movie None, None>'

    #eq
    movie7 = Movie("Moana", 2016)
    assert movie1.__eq__(movie7) == True
    assert movie1.__eq__(movie1) == True
    assert movie1.__eq__(movie2) == False

    #lt
    movie8 = Movie("Moana", 2006)
    assert movie8.__lt__(movie1) == True
    assert movie8.__lt__(movie8) == False
    assert movie1.__lt__(movie8) == False

    #hash
    assert hash(movie8) == hash(movie8)
    assert hash(movie7) == hash(movie1)
    assert hash(movie8) != hash(movie1)
    assert hash(movie8) != hash(movie2)

    #add and remove actor and genres
    #works

    #### EXTENSION ####

    #metascore
    movie1.metascore = 210
    assert movie1.metascore == 210
    movie2.metascore = 'lsdflfaskf'
    assert movie2.metascore == "N/A"
    movie3.metascore = -123
    assert movie3.metascore == 'N/A'

    #revenue
    movie1.revenue = 333.13
    assert movie1.revenue == 333.13
    movie2.revenue = 333
    assert movie2.revenue == 333
    movie3.revenue = -123
    assert movie3.revenue == "N/A"
    movie4.revenue = 'sadhjkfasdjkfh'
    assert movie4.revenue == 'N/A'

    #votes
    movie1.votes = 132456
    assert movie1.votes == 132456
    movie2.votes = -456123
    assert movie2.votes == None
    movie3.votes = 'sadfkasdgk'
    assert movie3.votes == None

    #rating
    movie1.rating = 8.1
    assert movie1.rating == 8.1
    movie2.rating = 8.0
    assert movie2.rating == 8.0
    movie3.rating = -45
    assert movie3.rating == None
    movie4.rating = 45
    assert movie4.rating == None
    movie5.rating = 'sdjfasdgkfjgkj'
    assert movie5.rating == None