Skip to content

Commit

Permalink
Added test, fix typo and use NotFound
Browse files Browse the repository at this point in the history
  • Loading branch information
ferbncode authored and gentlecat committed May 19, 2017
1 parent 015766f commit 19576c2
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 18 deletions.
6 changes: 3 additions & 3 deletions critiquebrainz/frontend/views/review.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from math import ceil
from flask import Blueprint, render_template, request, flash, redirect, url_for, jsonify, abort
from flask import Blueprint, render_template, request, flash, redirect, url_for, jsonify
from flask_babel import gettext, get_locale, lazy_gettext
from flask_login import login_required, current_user
from markdown import markdown
Expand All @@ -24,11 +24,11 @@


def get_review_or_404(review_id):
"""Get a review using review ID or abort with error 404."""
"""Get a review using review ID or raise error 404."""
try:
review = db_review.get_by_id(review_id)
except db_exceptions.NoDataFoundException:
abort(404)
raise NotFound("Can't find a review with ID: {review_id}".format(review_id=review_id))
return review


Expand Down
11 changes: 6 additions & 5 deletions critiquebrainz/frontend/views/user.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from flask import Blueprint, render_template, request, redirect, url_for, abort
from flask import Blueprint, render_template, request, redirect, url_for
from werkzeug.exceptions import NotFound
from flask_babel import gettext
from flask_login import login_required, current_user
from critiquebrainz.db.moderation_log import ACTION_BLOCK_USER
Expand All @@ -21,7 +22,7 @@ def reviews(user_id):
else:
user = db_users.get_by_id(user_id)
if not user:
abort(404)
raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id))
user = User(user)
page = int(request.args.get('page', default=1))
if page < 1:
Expand All @@ -39,7 +40,7 @@ def reviews(user_id):
def info(user_id):
user = db_users.get_by_id(user_id)
if not user:
abort(404)
raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id))
user = User(user)
return render_template('user/info.html', section='info', user=user)

Expand All @@ -50,7 +51,7 @@ def info(user_id):
def block(user_id):
user = db_users.get_by_id(user_id)
if not user:
abort(404)
raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id))

if user['is_blocked']:
flash.info(gettext("This account is already blocked."))
Expand All @@ -73,7 +74,7 @@ def block(user_id):
def unblock(user_id):
user = db_users.get_by_id(user_id)
if not user:
abort(404)
raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id))
db_users.unblock(user['id'])
flash.success(gettext("This user account has been unblocked."))
return redirect(url_for('user.reviews', user_id=user['id']))
6 changes: 3 additions & 3 deletions critiquebrainz/ws/review/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from flask import Blueprint, jsonify, abort
from flask import Blueprint, jsonify
from critiquebrainz.db.review import supported_languages, ENTITY_TYPES
import critiquebrainz.db.review as db_review
from critiquebrainz.db import vote as db_vote, exceptions as db_exceptions
Expand All @@ -18,11 +18,11 @@


def get_review_or_404(review_id):
"""Get a review using review ID or abort with error 404."""
"""Get a review using review ID or raise error 404"""
try:
review = db_review.get_by_id(review_id)
except db_exceptions.NoDataFoundException:
abort(404)
raise NotFound("Can't find a review with ID: {review_id}".format(review_id=review_id))
return review


Expand Down
14 changes: 7 additions & 7 deletions critiquebrainz/ws/user/views.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from flask import Blueprint, jsonify, request, redirect, url_for, abort
from flask import Blueprint, jsonify, request, redirect, url_for
from critiquebrainz.db.user import User
from critiquebrainz.db import users as db_users, exceptions as db_exceptions
from critiquebrainz.db import users as db_users
from critiquebrainz.decorators import crossdomain
from critiquebrainz.ws.oauth import oauth
from critiquebrainz.ws.parser import Parser
from critiquebrainz.ws.exceptions import NotFound

user_bp = Blueprint('ws_user', __name__)

Expand Down Expand Up @@ -222,12 +223,11 @@ def user_entity_handler(user_id):
:resheader Content-Type: *application/json*
"""
try:
user = User(db_user.get_by_id(str(user_id)))
except db_exceptions.NoDataFoundException:
abort(404)
user = db_users.get_by_id(str(user_id))
if not user:
raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id))
inc = Parser.list('uri', 'inc', User.allowed_includes, optional=True) or []
return jsonify(user=user.to_dict(inc))
return jsonify(user=User(user).to_dict(inc))


@user_bp.route('/', methods=['GET'])
Expand Down
10 changes: 10 additions & 0 deletions critiquebrainz/ws/user/views_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,13 @@ def test_user_addition(self):
self.assertEqual(resp['count'], 1)
self.assertEqual(len(resp['users']), 1)
# TODO(roman): Completely verify output (I encountered unicode issues when tried to do that).

def test_user_entity_handler(self):
user = User(db_users.create(
display_name='Tester 1',
email='tester1@testing.org',
))
resp = self.client.get('/user/{user_id}'.format(user_id=user.id)).json
self.assertEqual(resp['user']['display_name'], 'Tester 1')
# Test if user with specified ID does not exist
self.assert404(self.client.get('/user/e7aad618-fd86-3983-9e77-405e21796eca'))

0 comments on commit 19576c2

Please sign in to comment.