Пример #1
0
def test_init(user):
    assert user.watched_movies == MovieList()
    assert user.time_spent_watching_movies_minutes == 0
    assert user.reviews == []
    assert user.username == "aram485"
    assert user.password == "Spiderman209"
    user1 = User("", 4)
    user2 = User(45, "")
    assert user1.username is None
    assert user1.password is None
    assert user2.username is None
    assert user2.password is None

    mov = Movie("Up", 2009)
    mov2 = Movie("Down", 2019)
    mov.runtime_minutes = 200
    mov2.runtime_minutes = 160
    review = Review(mov, "Nice", 6)
    time = mov.runtime_minutes + mov2.runtime_minutes
    watched_already = MovieList()
    watched_already.add_movie(mov)
    watched_already.add_movie(mov2)
    user2 = User("     ARAM85  ", "spideran", watched_already, None,
                 (review, ), time)

    print("user2:", user2)
    print(user2.watched_movies.list)
    assert user2.watched_movies.list == (Movie("Up",
                                               2009), Movie("Down", 2019))
    assert user2.time_spent_watching_movies_minutes == 360
    assert user2.username == "aram85"
    assert user2.password == "spideran"
Пример #2
0
def test_compare():
    user1 = User("Brad Pitt", 4)
    user2 = User("brad PiTt", 5)
    assert user1 == user2
    user2 = 4
    assert user1 != user2
    user1 = User("", "goat")
    user2 = User(45, "HFTbhy")
    assert user1 == user2
Пример #3
0
def test_hash():
    user1 = User("Brad Pitt", "goat")
    user2 = User("Brad Pitt", "goat")
    assert hash(user1) == hash(user2)
    user2 = User("Taika Waititj", "goat")
    assert hash(user1) != hash(user2)
    dict1 = dict()
    dict1[user1] = user2
    assert dict1[user1] == user2
    assert repr(dict1[user1]) == "<User taika waititj>"
    user1 = User("", "friends")
    user2 = User(9, 6)
    dict1[user1] = user2
    assert dict1[user1] == user2
    assert repr(dict1[user1]) == "<User None>"
Пример #4
0
def add_user(username: str, password: str, repo: AbstractRepository):
    # Check that the given username is available.
    user = repo.get_user(username)
    if user is not None:
        raise NameNotUniqueException

    # Encrypt password so that the database doesn't store passwords 'in the clear'.
    password_hash = generate_password_hash(password)

    # Create and store the new User, with password encrypted.
    user = User(username, password_hash)
    repo.add_user(user)
Пример #5
0
def user():
    movie = Movie('Up', 2009)
    movie.add_actor(Actor("Will Smith"))
    movie.add_actor(Actor("Daniel Radcliff"))
    movie.add_genre(Genre("Comedy"))
    movie.add_genre(Genre("Drama"))
    director = Director("Peter Jackson")
    movie.director = director

    movie1 = Movie('Down', 2013)
    movie1.add_actor(Actor("Tom Cruise"))
    movie1.add_actor(Actor("Selena Gomez"))
    movie1.add_genre(Genre("Comedy"))
    movie1.add_genre(Genre("Romance"))
    director = Director("Peter Jackson")
    movie1.director = director

    movie2 = Movie('Boom', 1999)
    movie2.add_actor(Actor("Will Smith"))
    movie2.add_actor(Actor("Tom Cruise"))
    movie2.add_genre(Genre("Comedy"))
    movie2.add_genre(Genre("Action"))
    director = Director("Taika Waititi")
    movie2.director = director

    user = User("aram", "one1")
    user.watch_movie(movie)
    user.watch_movie(movie1)
    user.watch_movie(movie2)
    return user
Пример #6
0
def test_update(stats):
    movie2 = Movie('Brain', 2002)
    movie2.add_actor(Actor("Julia Roberts"))
    movie2.add_actor(Actor("Tom Cruise"))
    movie2.add_genre(Genre("Sci-Fi"))
    movie2.add_genre(Genre("Action"))
    director = Director("Christopher Nolan")
    movie2.director = director

    stats.user.watch_movie(movie2)
    stats.update_watched_lists()

    assert stats.user == User("aram", "one1", [], [], 0)
    assert stats.watched_movies == [
        Movie("Up", 2009),
        Movie("Down", 2013),
        Movie("Boom", 1999),
        Movie("Brain", 2002)
    ]
    assert stats.watched_actors == {
        Actor("Will Smith"): 2,
        Actor("Daniel Radcliff"): 1,
        Actor("Selena Gomez"): 1,
        Actor("Tom Cruise"): 3,
        Actor("Julia Roberts"): 1
    }
    assert stats.watched_directors == {
        Director("Peter Jackson"): 2,
        Director("Taika Waititi"): 1,
        Director("Christopher Nolan"): 1
    }
    assert stats.watched_genres == {
        Genre("Comedy"): 3,
        Genre("Romance"): 1,
        Genre("Drama"): 1,
        Genre("Action"): 2,
        Genre("Sci-Fi"): 1
    }
Пример #7
0
def test_init(stats):
    assert stats.user == User("aram", "one1", [], [], None, 0)
    assert stats.watched_movies == [
        Movie("Up", 2009),
        Movie("Down", 2013),
        Movie("Boom", 1999)
    ]
    assert stats.watched_actors == {
        Actor("Will Smith"): 2,
        Actor("Daniel Radcliff"): 1,
        Actor("Selena Gomez"): 1,
        Actor("Tom Cruise"): 2
    }
    assert stats.watched_directors == {
        Director("Peter Jackson"): 2,
        Director("Taika Waititi"): 1
    }
    assert stats.watched_genres == {
        Genre("Comedy"): 3,
        Genre("Romance"): 1,
        Genre("Drama"): 1,
        Genre("Action"): 1
    }
Пример #8
0
def load_users(data_path: str, repo: MemoryRepository):
    #    for row in read_csv_file(os.path.join(data_path, 'test1user.csv')):
    print("OS", os.path.join(data_path, 'Data5Users.csv'))
    for row in read_csv_file(os.path.join(data_path, 'Data5Users.csv')):
        watching_time = 0
        watchlist_string = row['Watchlist'].strip().split("|")
        watchlist = MovieList()
        for movie_name in watchlist_string:
            movie_name = movie_name.strip().split(";")
            try:
                movie = Movie(movie_name[0].strip(),
                              int(movie_name[1].strip()))
            except:
                print("Invalid movie")
            else:
                if movie in repo.get_movies():
                    i = repo.get_movies().index(movie)
                    movie = repo.get_movies()[i]
                else:
                    pass
                    #repo.add_movie(movie)
                if movie not in watchlist.list:
                    watchlist.add_movie(movie)

        watched_string = row["Watched_movies"].strip().split("|")
        watched = MovieList()
        for movie_name in watched_string:
            movie_name = movie_name.strip().split(";")
            try:
                movie = Movie(movie_name[0].strip(),
                              int(movie_name[1].strip()))
            except:
                print("Invalid movie")
            else:
                if movie in repo.get_movies():
                    i = repo.get_movies().index(movie)
                    movie = repo.get_movies()[i]
                else:
                    pass
                    #repo.add_movie(movie)
                if movie not in watched:
                    watched.add_movie(movie)
                    if movie.runtime_minutes is not None:
                        try:
                            watching_time += movie.runtime_minutes
                        except:
                            pass

        reviews_string = row["Reviews"].strip().split("|")
        review_list = []
        for review_string in reviews_string:
            review_string = review_string.strip().split(";")
            if len(review_string) > 4:
                try:
                    movie = Movie(review_string[0].strip(),
                                  int(review_string[1].strip()))
                except:
                    print("Invalid movie")
                else:
                    if movie in repo.get_movies():
                        i = repo.get_movies().index(movie)
                        movie = repo.get_movies()[i]
                    else:
                        pass
                        #repo.add_movie(movie)

                    review_message = review_string[3].strip()

                    try:
                        #timestamp = datetime.strptime(review_string[4].strip())
                        timestamp = datetime.fromisoformat(
                            review_string[4].strip())
                    except:
                        pass
                    else:
                        try:
                            rating = float(review_string[2])
                        except:
                            pass
                        else:
                            review = Review(movie, review_message, rating)
                            review.timestamp = timestamp
                            review_list.append(review)
                            repo.add_review(review)
        user = User(username=row['Username'].strip(),
                    password=generate_password_hash(row['Password'].strip()),
                    watched=watched,
                    reviews=tuple(review_list),
                    time_spent=watching_time,
                    watchlist=watchlist)
        repo.add_user(user)
Пример #9
0
def user():
    return User(
        "     ARAM485  ",
        "Spiderman209",
    )
Пример #10
0
def test_lt():
    user1 = User("Brad Pitt", 4)
    user2 = User("brae Pitt", 7)
    assert user1 < user2
Пример #11
0
def test_add_get_user(in_memory_repo):
    assert in_memory_repo.get_user("pikachu") is None
    in_memory_repo.add_user(User("pikachu", "three3"))
    assert in_memory_repo.get_user("pikachu") == User("pikachu",
                                                      "some password")