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
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
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
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
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
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
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)
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")
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
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
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>"
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