Ejemplo n.º 1
0
def test_get_movies_by_title_with_no_prev(in_memory_repo):
    title = "Guardians of the Galaxy"
    movies_dto, prev_title, next_title = movies_services.get_movies_by_title(
        title, in_memory_repo)
    assert prev_title == None
    assert next_title == "La La Land"
    assert len(movies_dto) == 1
    assert movies_dto[0]['id'] == 1
Ejemplo n.º 2
0
def test_get_movies_by_title_with_no_next(in_memory_repo):
    title = "The Lost City of Z"
    movies_dto, prev_title, next_title = movies_services.get_movies_by_title(
        title, in_memory_repo)
    # prev in alphabetical is The great wall, after is nothing
    assert prev_title == "The Great Wall"
    assert next_title == None
    assert len(movies_dto) == 1
    assert movies_dto[0]['id'] == 9
Ejemplo n.º 3
0
def test_get_movies_by_title_with_prev(in_memory_repo):
    title = "Prometheus"
    movies_dto, prev_title, next_title = movies_services.get_movies_by_title(
        title, in_memory_repo)
    # prev in alphabetical is passengers, after is sing
    assert prev_title == "Passengers"
    assert next_title == "Sing"
    assert len(movies_dto) == 1
    assert movies_dto[0]['id'] == 2
Ejemplo n.º 4
0
def movies_by_title():
    target_title = None
    search_form = utilities.SearchForm()
    search_form.search_term.label = "Search by Title"
    if search_form.validate_on_submit():
        target_title = search_form.search_term.data
        return redirect(
            url_for('movies_bp.movies_by_title', title=target_title))

    if request.method == 'GET':
        target_title = request.args.get('title')

    movies = []
    title = ""
    if target_title is not None and len(target_title.strip()) > 0:
        movies = services.get_movies_by_title(target_title, repo.repo_instance)
        for list_movie in movies:
            list_movie['url'] = url_for(
                'movies_bp.movie',
                title=list_movie['title'],
                release_year=list_movie['release_year'])
            list_movie['review_url'] = url_for(
                'movies_bp.review_movie',
                title=list_movie['title'],
                release_year=list_movie['release_year'])
        title += 'Search Results For: "' + target_title + '"'

    movies_id = 0
    if request.args.get('next_id') is not None:
        movies_id = int(request.args.get('next_id'))
    next_id = min(movies_id + 4, len(movies))
    prev_id = max(movies_id - 4, 0)
    next_movies = False
    prev_movies = False
    if len(movies) - (movies_id + 1) >= 4:
        next_movies = True
    if movies_id >= 4:
        prev_movies = True

    return render_template('search/movies_list_w_search.html',
                           title=title,
                           movies=movies[movies_id:next_id],
                           prev_movies=prev_movies,
                           prev_movies_url=url_for('movies_bp.movies_by_title',
                                                   title=target_title,
                                                   next_id=prev_id),
                           next_movies=next_movies,
                           next_movies_url=url_for('movies_bp.movies_by_title',
                                                   title=target_title,
                                                   next_id=next_id),
                           handler_url=url_for('movies_bp.movies_by_title',
                                               title=target_title),
                           search_form=search_form,
                           watchlist_empty=utilities.get_watchlist_empty())
Ejemplo n.º 5
0
def movies_by_search():
    username = None
    try:
        username = session['username']
    except:
        pass
    recommendations = utilities.get_recommendations(username)

    search_query = request.args.get('search_query')
    search_type = request.args.get('search_type')
    movie_to_show_reviews = request.args.get('view_reviews_for')

    if movie_to_show_reviews is None:
        # No view-reviews query parameter, so set to a non-existent movie id.
        movie_to_show_reviews = -1
    else:
        # Convert movie_to_show_reviews from string to int.
        movie_to_show_reviews = int(movie_to_show_reviews)
    movies = []

    if search_type == "title":
        # movies = list of dicts
        movies, previous_title, next_title = services.get_movies_by_title(
            search_query, repo.repo_instance)
    elif search_type == "director":
        movies = services.get_movies_by_director(search_query,
                                                 repo.repo_instance)
    elif search_type == "actor":
        movies = services.get_movies_by_actor(search_query, repo.repo_instance)
    for movie in movies:
        movie['display_movie_url'] = url_for('movies_bp.display_movie',
                                             movie=movie['id'])

    return render_template(
        "movies/search_results.html",
        search_query=search_query,
        search_type=search_type,
        movies=movies,
        selected_movies=utilities.get_selected_movies(len(movies) + 2),
        recommendations=recommendations,
        genre_urls=utilities.get_genres_and_urls(),
    )
Ejemplo n.º 6
0
def test_get_movies_by_title(repository):
    assert services.get_movies_by_title("Moana",
                                        repository)[0]['title'] == "Moana"
    assert services.get_movies_by_title("Moana",
                                        repository)[0]['release_year'] == 2016
    assert services.get_movies_by_title("A Silent Voice", repository) == []
Ejemplo n.º 7
0
def test_get_movies_by_title_with_invalid_title(in_memory_repo):
    title = "this is invalid"
    movies_dto, prev_title, next_title = movies_services.get_movies_by_title(
        title, in_memory_repo)
    assert len(movies_dto) == 0