Add the next batch of tests and fixes.

This commit is contained in:
yackob03 2013-11-06 17:56:31 -05:00
parent db59b5bf9c
commit 2a849f631b
3 changed files with 477 additions and 289 deletions

View file

@ -112,7 +112,7 @@ def change_user_details():
user_data = request.get_json();
try:
if user_data['password']:
if 'password' in user_data:
logger.debug('Changing password for user: %s', user.username)
model.change_password(user, user_data['password'])
except model.InvalidPasswordException, ex:
@ -283,26 +283,29 @@ def team_view(orgname, t):
@app.route('/api/organization/<orgname>', methods=['GET'])
@api_login_required
def get_organization(orgname):
user = current_user.db_user()
permission = OrganizationMemberPermission(orgname)
if permission.can():
user = current_user.db_user()
def org_view(o, teams):
admin_org = AdministerOrganizationPermission(orgname)
is_admin = admin_org.can()
return {
'name': o.username,
'gravatar': compute_hash(o.email),
'teams': {t.name : team_view(orgname, t) for t in teams},
'is_admin': is_admin
}
def org_view(o, teams):
admin_org = AdministerOrganizationPermission(orgname)
is_admin = admin_org.can()
return {
'name': o.username,
'gravatar': compute_hash(o.email),
'teams': {t.name : team_view(orgname, t) for t in teams},
'is_admin': is_admin
}
try:
org = model.get_organization(orgname)
except model.InvalidOrganizationException:
abort(404)
try:
org = model.get_organization(orgname)
except model.InvalidOrganizationException:
abort(404)
teams = model.get_teams_within_org(org)
return jsonify(org_view(org, teams))
teams = model.get_teams_within_org(org)
return jsonify(org_view(org, teams))
abort(403)
@app.route('/api/organization/<orgname>/private', methods=['GET'])
@api_login_required
@ -578,7 +581,7 @@ def change_repo_visibility_api(namespace, repository):
'success': True
})
abort(404)
abort(403)
@app.route('/api/repository/<path:repository>', methods=['DELETE'])
@ -591,7 +594,7 @@ def delete_repository(namespace, repository):
registry.delete_repository_storage(namespace, repository)
return make_response('Deleted', 204)
abort(404)
abort(403)
def image_view(image):
@ -649,7 +652,7 @@ def get_repo_api(namespace, repository):
'is_organization': bool(organization)
})
abort(404) # Not fount
abort(404) # Not found
abort(403) # Permission denied
@ -689,6 +692,7 @@ def get_repo_builds(namespace, repository):
@app.route('/api/filedrop/', methods=['POST'])
@api_login_required
@required_json_args('mimeType')
def get_filedrop_url():
mime_type = request.get_json()['mimeType']
(url, file_id) = user_files.prepare_for_drop(mime_type)