def test_init(self): user1 = User('Martin', 'pw12345') user2 = User('Ian', 'pw67890') user3 = User('Daniel', 'pw87465') assert repr(user1) == "<User martin>" assert repr(user2) == "<User ian>" assert repr(user3) == "<User daniel>"
def test_watched_movies(self): user1 = User('user1', 'pw12345') movie1 = Movie("Star War", 19879, 1) movie1.set_runtime_minutes(120) user1.watch_movie(movie1) assert user1.watched_movies == [movie1] assert user1.time_spent_watching_movies_minutes == 120
def test_loading_of_users(empty_session): users = list() users.append(("andrew", "1234")) users.append(("cindy", "1111")) insert_users(empty_session, users) expected = [User("andrew", "1234"), User("cindy", "999")] assert empty_session.query(User).all() == expected
def test_adding_users_to_movie_watching_simulatior(simulator): user1 = User('user1_username', 'user1_password') user2 = User('user2_username', 'user2_password') simulator.add_user(user1) simulator.add_user(user2) assert simulator.number_of_users_watching == 2 assert Movie("Star War", 2017, 1) in user1.watched_movies assert Movie("Star War", 2017, 1) in user2.watched_movies
def test_repository_can_add_a_user(session_factory): repo = SqlAlchemyRepository(session_factory) user = User('Dave', '123456789') print(user) repo.add_user(user) repo.add_user(User('Martin', '123456789')) user2 = repo.get_user('Dave') print(user2) assert user2 == user and user2 is user
def test_saving_of_users_with_common_username(empty_session): insert_user(empty_session, ('andrew', '1234')) empty_session.commit() with pytest.raises(IntegrityError): user = User("andrew", "111") empty_session.add(user) empty_session.commit()
def load_users(datapath: str, repo: MemoryRepository): users = dict() for data_row in read_csv_file(os.path.join(datapath, 'users.csv')): user = User(user_name=data_row[1], password=generate_password_hash(data_row[2])) repo.add_user(user) users[int(data_row[0])] = user return users
def test_init(self): user = User("username", "password") movie = Movie("Moana", 2016, 1) review_text = "This movie was very enjoyable." rating = 8 review = Review(user, movie, review_text, rating, date.fromisoformat('2020-03-15')) assert review.review_author == user assert repr(review.movie) == "<Movie Moana, 2016>" assert review.review_text == "This movie was very enjoyable." assert review.rating == 8
def test_add_movie(watchlist): watchlist.add_movie(Movie("Moana", 2016, 1), datetime(2020, 9, 3)) watchlist.add_movie(Movie("Ice Age", 2002, 2), datetime(2020, 9, 1)) assert watchlist.size() == 2 assert len(watchlist.get_schedule()) == 2 watchlist.add_movie(Movie("Ice Age", 2002, 2), datetime(2020, 9, 1)) assert watchlist.size() == 2 assert len(watchlist.get_schedule()) == 2 watchlist.add_movie(User("username", "password"), datetime( 2020, 9, 4)) #test if the function handles none Movie type object assert watchlist.size() == 2 assert len(watchlist.get_schedule()) == 2
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 plain form password_hash = generate_password_hash(password) # Creat and store the new User, with password encrypted user = User(username, password_hash) repo.add_user(user)
def test_add_review(self): user1 = User('user1', 'pw12345') movie1 = Movie("Star War", 19879, 1) movie1.set_runtime_minutes(120) user1.watch_movie(movie1) review = Review(user1, movie1, "This is a great movie!", 9, date.fromisoformat('2020-03-15')) user1.add_review(review) assert user1.reviews == [review]
def test_repository_can_retrieve_a_user(in_memory_repo): user = in_memory_repo.get_user('fmercury') assert user == User('fmercury', '8734gfe2058v')
def test_repository_can_add_a_user(in_memory_repo): user = User('Dave', 123456789) in_memory_repo.add_user(user) assert in_memory_repo.get_user('Dave') is user
def test_adding_reviews(simulator): user1 = User('user1_username', 'user1_password') user1_first_review = Review(user1, Movie("Star War", 2017, 1), "This is user1's first review for Star War", 9, date.fromisoformat('2020-09-21')) user1_second_review = Review(user1, Movie("Star War", 2017, 1), "This is user1's second review for Star War", 9, date.fromisoformat('2020-09-21')) user1_another_review = Review(user1, Movie("Hunger Game", 2016, 2), "This is user1's review for Hunger game", 8, date.fromisoformat('2020-09-21')) user1.add_review(user1_first_review) user1.add_review(user1_second_review) user1.add_review(user1_another_review) user2 = User('user2_username', 'user2_password') user2_first_review = Review(user2, Movie("Star War", 2017, 1), "This is user2's first review for Star War", 6, date.fromisoformat('2020-09-21')) user2.add_review(user2_first_review) simulator.add_user(user1) simulator.add_user(user2) simulator.retrieve_review() assert simulator.num_of_reviews == 3
def test_show_live_reviews(simulator): user1 = User('user1_username', 'user1_password') user1_first_review = Review(user1, Movie("Star War", 2017, 1), "This is user1's first review for Star War", 9, date.fromisoformat('2020-09-21')) user1_second_review = Review(user1, Movie("Star War", 2017, 2), "This is user1's second review for Star War", 9, date.fromisoformat('2020-09-21')) user1_another_review = Review(user1, Movie("Hunger Game", 2016, 3), "This is user1's review for Hunger game", 8, date.fromisoformat('2020-09-21')) user1.add_review(user1_first_review) user1.add_review(user1_second_review) user1.add_review(user1_another_review) user2 = User('user2_username', 'user2_password') user2_first_review = Review(user2, Movie("Star War", 2017, 4), "This is user2's first review for Star War", 6, date.fromisoformat('2020-09-21')) user2.add_review(user2_first_review) simulator.add_user(user1) simulator.add_user(user2) simulator.retrieve_review() assert simulator.show_live_reviews() == "Live Reviews for <Movie Star War, 2017>:\n<User user1_username> ---> This is user1's first review " \ "for Star War\n" + "<User user1_username> ---> This is user1's second review for Star War\n" \ + "<User user2_username> ---> This is user2's first review for Star War\n"
def make_user(): user = User('andrew', '1234') return user
def test_reper(simulator): user1 = User('user1_username', 'user1_password') user1_first_review = Review(user1, Movie("Star War", 2017, 2), "This is user1's first review for Star War", 9, date.fromisoformat('2020-09-21')) user1_second_review = Review(user1, Movie("Star War", 2017, 1), "This is user1's second review for Star War", 9, date.fromisoformat('2020-09-21')) user1_another_review = Review(user1, Movie("Hunger Game", 2016, 3), "This is user1's review for Hunger game", 8, date.fromisoformat('2020-09-21')) user1.add_review(user1_first_review) user1.add_review(user1_second_review) user1.add_review(user1_another_review) user2 = User('user2_username', 'user2_password') user2_first_review = Review(user2, Movie("Star War", 2017, 1), "This is user2's first review for Star War", 6, date.fromisoformat('2020-09-21')) user2.add_review(user2_first_review) simulator.add_user(user1) simulator.add_user(user2) simulator.retrieve_review() assert repr( simulator ) == "Movie Watching Simulation - Star War : 2017\nNumber of users watching: 2\nNumber of reviews received: 3"
def test_repository_can_retrieve_a_user(session_factory): repo = SqlAlchemyRepository(session_factory) user = repo.get_user('fmercury') assert user == User('fmercury', '8734gfe2058v')