def test_watchlist_invalid_select(self):
     watchlist = WatchList()
     watchlist.add_movie(Movie("Moana", 2016))
     watchlist.add_movie(Movie("Ice Age", 2002))
     watchlist.add_movie(Movie("Guardians of the Galaxy", 2012))
     print(watchlist.select_movie_to_watch(3))
     assert watchlist.select_movie_to_watch(3) == None
Exemple #2
0
def test():
    watchlist = WatchList()
    assert watchlist.size() == 0
    watchlist.add_movie(Movie("Up", 2009))
    assert watchlist.size() == 1
    watchlist.add_movie(Movie("Down", 1999))
    assert watchlist.size() == 2
    watchlist.add_movie(Movie("XYZ", 2013))
    assert watchlist.size() == 3
    watchlist.add_movie(Movie("Anabelle", 2020))
    assert watchlist.size() == 4
    watchlist.add_movie(Movie("Anabelle", 2020))
    assert watchlist.size() == 4

    i = iter(watchlist)
    repr(next(i)) == "<Movie Up, 2009>"
    repr(next(i)) == "<Movie Down, 1999>"
    repr(next(i)) == "<Movie XYZ, 2013>"
    repr(next(i)) == "<Movie Anabelle, 2020>"
    with pytest.raises(StopIteration):
        next(i)

    watchlist.remove_movie(Movie("Up", 2009))
    assert watchlist.size() == 3
    watchlist.remove_movie(Movie("Left", 2009))
    assert watchlist.size() == 3
    assert repr(watchlist.select_movie_to_watch(0)) == "<Movie Down, 1999>"
    assert watchlist.select_movie_to_watch(4) == None
    assert repr(watchlist.first_movie_in_watchlist()) == "<Movie Down, 1999>"
    watchlist.remove_movie(Movie("Down", 1999))
    watchlist.remove_movie(Movie("XYZ", 2013))
    watchlist.remove_movie(Movie("Anabelle", 2020))
    assert watchlist.first_movie_in_watchlist() == None
Exemple #3
0
def test_select_movie():
    watchlist = WatchList()
    watchlist.add_movie(Movie("Moana", 2016))
    watchlist.add_movie(Movie("Ice Age", 2002))
    watchlist.add_movie(Movie("Guardians of the Galaxy", 2012))
    assert watchlist.select_movie_to_watch(1) == Movie("Ice Age", 2002)
    assert watchlist.select_movie_to_watch(2) == Movie("Guardians of the Galaxy", 2012)
    assert watchlist.select_movie_to_watch(3) == None
def test_select_index():
    w = WatchList()
    w.add_movie(movie)
    w.add_movie(movie2)
    assert w.select_movie_to_watch(0) == movie
    assert w.select_movie_to_watch(1) == movie2
    assert w.select_movie_to_watch(2) is None
    assert w.select_movie_to_watch(-1) is None
Exemple #5
0
 def test_select_movie(self):
     watchlist = WatchList()
     watchlist.add_movie(Movie("Moana", 2016))
     watchlist.add_movie(Movie("Ice Age", 2002))
     watchlist.add_movie(Movie("Guardians of the Galaxy", 2012))
     watchlist.add_movie(Movie("Transformers", 2007))
     assert repr(
         watchlist.select_movie_to_watch(3)) == "<Movie Transformers, 2007>"
     assert watchlist.select_movie_to_watch(10) == None
Exemple #6
0
    def test_select_movie_to_watch(self):
        watchlist = WatchList()
        movie1 = Movie("Moana", 2016)
        movie2 = Movie("Ice Age", 2002)
        movie3 = Movie("Guardians of the Galaxy", 2012)
        watchlist.add_movie(movie1)
        watchlist.add_movie(movie2)
        watchlist.add_movie(movie3)

        assert watchlist.select_movie_to_watch(0) == movie1
        # ^ note: could've just done "== Movie("Moana", 2016)" since __eq__ is defined by same title and year
        assert watchlist.select_movie_to_watch(1) == movie2
        assert watchlist.select_movie_to_watch(3) == None # tests that it gives None if range out of bounds
Exemple #7
0
    def test_select_movie_to_watch(self):
        movie1 = Movie("Moana", 2016)
        movie2 = Movie("Ice Age", 2002)
        movie3 = Movie("Wall-E", 2008)

        watchlist = WatchList()
        watchlist.add_movie(movie1)
        watchlist.add_movie(movie2)
        watchlist.add_movie(movie3)

        assert watchlist.select_movie_to_watch(0) == movie1
        assert watchlist.select_movie_to_watch(90) is None
        assert watchlist.select_movie_to_watch("abc") is None
        assert watchlist.select_movie_to_watch(-1) is None
def test_select_movie_to_watch_index_out_of_bounds_negative():
    movie1 = Movie("Moana", 2016)
    movie2 = Movie("Mulan", 2020)
    watchlist1 = WatchList()
    watchlist1.add_movie(movie1)
    watchlist1.add_movie(movie2)
    assert watchlist1.select_movie_to_watch(-1) == None
Exemple #9
0
def constructor_test():
    watchlist = WatchList()
    print(watchlist.size())
    watchlist.add_movie(Movie("Up", 2009))
    print(watchlist.size())
    watchlist.add_movie(Movie("Down", 1999))
    print(watchlist.size())
    watchlist.add_movie(Movie("XYZ", 2013))
    print(watchlist.size())
    watchlist.add_movie(Movie("Anabelle", 2020))
    print(watchlist.size())
    watchlist.add_movie(Movie("Anabelle", 2020))
    print(watchlist.size())

    i = iter(watchlist)
    print(next(i))
    print(next(i))
    print(next(i))

    for movie in i:
        print(movie)

    watchlist.remove_movie(Movie("Up", 2009))
    print(watchlist.size())
    watchlist.remove_movie(Movie("Left", 2009))
    print(watchlist.size())
    print(watchlist.select_movie_to_watch(0))
    print(watchlist.select_movie_to_watch(4))
    print(watchlist.first_movie_in_watchlist())
    watchlist.remove_movie(Movie("Down", 1999))
    watchlist.remove_movie(Movie("XYZ", 2013))
    watchlist.remove_movie(Movie("Anabelle", 2020))
    print(watchlist.first_movie_in_watchlist())
def test_select_movie_to_watch_index_ok():
    movie1 = Movie("Moana", 2016)
    movie2 = Movie("Mulan", 2020)
    watchlist1 = WatchList()
    watchlist1.add_movie(movie1)
    watchlist1.add_movie(movie2)
    assert watchlist1.select_movie_to_watch(1) == Movie("Mulan", 2020)
Exemple #11
0
 def test_init_6(self):
     watchlist_1 = WatchList()
     movie1 = Movie("Moana", 2016)
     movie2 = Movie("Harry Potter", 2010)
     movie3 = Movie("Harry Potter", 2012)
     watchlist_1.add_movie(movie1)
     watchlist_1.add_movie(movie2)
     assert watchlist_1.select_movie_to_watch(3) is None
def test_select_movie_to_watch_index_not_int():
    movie1 = Movie("Moana", 2016)
    movie2 = Movie("Mulan", 2020)
    watchlist1 = WatchList()
    watchlist1.add_movie(movie1)
    watchlist1.add_movie(movie2)
    with pytest.raises(TypeError):
        assert watchlist1.select_movie_to_watch("a")
Exemple #13
0
 def test_init(self):
     watchlist_1 = WatchList()
     movie1 = Movie("Moana", 2016)
     movie2 = Movie("Harry Potter", 2010)
     watchlist_1.add_movie(movie1)
     watchlist_1.add_movie(movie2)
     the_movie = watchlist_1.select_movie_to_watch(1)
     assert (the_movie == movie2) == True
     assert watchlist_1.size() == 2
def test_iterator():
    movie1 = Movie("Moana", 2016)
    movie2 = Movie("Mulan", 2020)
    movie3 = Movie("Frozen", 2014)
    movie4 = Movie("Despicable Me", 2013)
    watchlist1 = WatchList()
    watchlist1.add_movie(movie1)
    watchlist1.add_movie(movie2)
    watchlist1.add_movie(movie3)
    watchlist1.add_movie(movie4)
    for index, movie in enumerate(watchlist1):
        assert repr(movie) == repr(watchlist1.select_movie_to_watch(index))
def test_select_and_first():
    movie1 = Movie("Moana", 2016)
    movie2 = Movie("Booksmart", 2019)
    movie3 = Movie("School of Rock", 2003)
    movie4 = Movie("Roma", 2018)
    watchlist = WatchList()
    watchlist.add_movie(movie1)
    watchlist.add_movie(movie2)
    watchlist.add_movie(movie3)
    watchlist.add_movie(movie4)
    assert watchlist.select_movie_to_watch(0) == Movie("Moana", 2016)
    assert watchlist.select_movie_to_watch(5) is None
    assert watchlist.first_movie_in_watchlist() == Movie("Moana", 2016)
    watchlist2 = WatchList()
    assert watchlist2.first_movie_in_watchlist() is None
Exemple #16
0
def test_watchlist():
    watchlist = WatchList()

    movies = [
        Movie("Moana", 2016),
        Movie("The Lion King", 1994),
        Movie("Guardians of the Galaxy", 2016),
        Movie("Prometheus", 2012),
        Movie("La La Land", 2016)
    ]

    for movie in movies:
        watchlist.add_movie(movie)

    assert watchlist.size() == 5
    assert watchlist.first_movie_in_watchlist() == movies[0]
    assert watchlist.select_movie_to_watch(2) == movies[2]
    assert watchlist.select_movie_to_watch(7) is None

    movies2 = []

    for movie in watchlist:
        movies2.append(movie)

    assert movies == movies2

    watchlist.remove_movie(movies[3])

    assert watchlist.size() == 4

    watchlist.add_movie(movies[1])

    assert watchlist.size() == 4

    watchlist_iter = iter(watchlist)
    assert next(watchlist_iter) == movies[0]
    assert next(watchlist_iter) == movies[1]
    assert next(watchlist_iter) == movies[2]
    assert next(watchlist_iter) == movies[4]

    with pytest.raises(StopIteration):
        next(watchlist_iter)
class MovieWatchingSimulation:
    def __init__(self, user: User):
        if type(user) == User:
            self.__user = user
        else:
            self.__user = None
        self.__watch_list = WatchList()
        self.__now_playing = None
        self.__next_playing = None
        self.__play_pointer = 0
        self.__review = list()

    @property
    def user(self):
        return self.__user

    @property
    def watch_list(self):
        return self.__watch_list

    @property
    def now_playing(self):
        return self.__now_playing

    @property
    def next_playing(self):
        return self.__next_playing

    @property
    def review(self):
        return self.__review

    def add_movie_to_playlist(self, movie: Movie):
        if movie not in self.__watch_list and type(movie) == Movie:
            if self.__watch_list.size() == 0:
                self.__watch_list.add_movie(movie)
                self.__now_playing = movie
                self.__play_pointer = 0
            else:
                if self.__watch_list.size() == 1:
                    self.__next_playing = movie
                    self.__watch_list.add_movie(movie)
                else:
                    self.__watch_list.add_movie(movie)

    def remove_movie_from_play_list(self, movie: Movie):
        if movie == self.__now_playing:
            self.__now_playing = self.__next_playing
            self.__watch_list.remove_movie(movie)
            self.__next_playing = self.__watch_list.select_movie_to_watch(
                self.__play_pointer + 1)
        elif movie == self.__next_playing:
            self.__watch_list.remove_movie(movie)
            self.__next_playing = self.__watch_list.select_movie_to_watch(
                self.__play_pointer + 1)
        else:
            self.__watch_list.remove_movie(movie)

    def play_next_movie(self):
        if self.__play_pointer + 1 < self.__watch_list.size():
            self.__play_pointer += 1
            self.__now_playing = self.__watch_list.select_movie_to_watch(
                self.__play_pointer)

            if self.__play_pointer + 1 < self.__watch_list.size():
                self.__next_playing = self.__watch_list.select_movie_to_watch(
                    self.__play_pointer + 1)
            else:
                self.__next_playing = None

        else:
            self.__now_playing = None
            self.__play_pointer += 1

    def play_previous_movie(self):
        if self.__play_pointer == self.__watch_list.size():
            self.__play_pointer -= 1
            self.__now_playing = self.__watch_list.select_movie_to_watch(
                self.__play_pointer)
        elif self.__play_pointer - 1 >= 0:
            self.__play_pointer -= 1
            self.__now_playing = self.__watch_list.select_movie_to_watch(
                self.__play_pointer)
            self.__next_playing = self.__watch_list.select_movie_to_watch(
                self.__play_pointer + 1)
        else:
            pass

    def review_to_current_playing_movie(self):

        # Simulate user input for test only. Request input later on.
        review = Review(self.__now_playing, "Good Movie, I like it.", 10)
        self.__review.append(review)

    def search_movie_from_playlist_to_watch(self, movie: Movie):
        i = 0
        for m in self.__watch_list:
            if movie == m:
                self.__now_playing = movie
                self.__play_pointer = i
                self.__next_playing = self.__watch_list.select_movie_to_watch(
                    i + 1)
                break
            i += 1
def test_first_movie_in_watchlist_is_empty():
    watchlist = WatchList()
    assert watchlist.select_movie_to_watch(0) is None
def test_select_movie_to_watch_index_out_of_bounds():
    watchlist = WatchList()
    watchlist.add_movie(Movie("a", 2012))
    movie = watchlist.select_movie_to_watch(1)
    assert movie is None
Exemple #20
0
def test_index_watchlist():
    watchlist = WatchList()
    watchlist.add_movie(Movie("Your name", 2006))
    assert watchlist.select_movie_to_watch(0) == Movie("Your name", 2006)
def test_select_movie_out_of_range():
    watchlist8 = WatchList()
    watchlist8.add_movie(Movie("Moana", 2016))
    watchlist8.add_movie(Movie("Transformers", 2007))
    watchlist8.add_movie(Movie("Ice Age", 2002))
    assert repr(watchlist8.select_movie_to_watch(3)) == "None"
def test_select_movie():
    watchlist7 = WatchList()
    watchlist7.add_movie(Movie("Moana", 2016))
    watchlist7.add_movie(Movie("Transformers", 2007))
    watchlist7.add_movie(Movie("Ice Age", 2002))
    assert repr(watchlist7.select_movie_to_watch(2)) == "<Movie Ice Age, 2002>"
Exemple #23
0
def test_index_out_of_bound_watchlist():
    watchlist = WatchList()
    watchlist.add_movie(Movie("Your name", 2006))
    assert watchlist.select_movie_to_watch(1) is None