From 1a5c77acffd48bab595f87dfcd6833122be49760 Mon Sep 17 00:00:00 2001 From: David Read Date: Thu, 5 Jan 2017 08:08:57 +0000 Subject: [PATCH] Fix for exception when deleting a user that doesnt exist. --- ckan/logic/action/delete.py | 6 +++--- ckan/tests/logic/action/test_delete.py | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ckan/logic/action/delete.py b/ckan/logic/action/delete.py index 816007ef19d..f461be9e182 100644 --- a/ckan/logic/action/delete.py +++ b/ckan/logic/action/delete.py @@ -45,14 +45,14 @@ def user_delete(context, data_dict): user_id = _get_or_bust(data_dict, 'id') user = model.User.get(user_id) + if user is None: + raise NotFound('User "{id}" was not found.'.format(id=user_id)) + # New revision, needed by the member table rev = model.repo.new_revision() rev.author = context['user'] rev.message = _(u' Delete User: {0}').format(user.name) - if user is None: - raise NotFound('User "{id}" was not found.'.format(id=user_id)) - user.delete() user_memberships = model.Session.query(model.Member).filter( diff --git a/ckan/tests/logic/action/test_delete.py b/ckan/tests/logic/action/test_delete.py index 89a7f96cc63..6194d671144 100644 --- a/ckan/tests/logic/action/test_delete.py +++ b/ckan/tests/logic/action/test_delete.py @@ -506,6 +506,15 @@ def test_user_delete(self): user_obj = model.User.get(user[u'id']) assert_equals(user_obj.state, u'deleted') + def test_user_delete_but_user_doesnt_exist(self): + context = {} + params = {u'id': 'unknown'} + + assert_raises( + logic.NotFound, + helpers.call_action, + u'user_delete', context, **params) + def test_user_delete_removes_memberships(self): user = factories.User() factories.Organization(