From 89552bdd9e054c7b2c4e576666a6e7ce7f8be275 Mon Sep 17 00:00:00 2001 From: John Glover Date: Wed, 20 Mar 2013 16:08:05 +0100 Subject: [PATCH] [#669] Raise NotFound if group is not found in member_list. Allows a proper error to be generated in the API controller instead of just giving a 500 error. --- ckan/logic/action/get.py | 3 +++ ckan/tests/logic/test_member.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/ckan/logic/action/get.py b/ckan/logic/action/get.py index 784a9035e17..63f16d8c647 100644 --- a/ckan/logic/action/get.py +++ b/ckan/logic/action/get.py @@ -261,6 +261,9 @@ def member_list(context, data_dict=None): model = context['model'] group = model.Group.get(_get_or_bust(data_dict, 'id')) + if not group: + raise NotFound + obj_type = data_dict.get('object_type', None) capacity = data_dict.get('capacity', None) diff --git a/ckan/tests/logic/test_member.py b/ckan/tests/logic/test_member.py index 8fdc7baaf89..b75b1154f0c 100644 --- a/ckan/tests/logic/test_member.py +++ b/ckan/tests/logic/test_member.py @@ -1,3 +1,5 @@ +from nose.tools import assert_raises +import ckan.logic as logic from ckan import model from ckan.logic import get_action from ckan.lib.create_test_data import CreateTestData @@ -50,6 +52,10 @@ def test_member_list(self): res = get_action('member_list')(ctx, dd) assert len(res) == 0, res + ctx, dd = self._build_context('', 'user', 'admin') + dd['id'] = u'foo' + assert_raises(logic.NotFound, get_action('member_list'), ctx, dd) + self._add_member(self.username, 'user', 'admin') ctx, dd = self._build_context('', 'user', 'admin') res = get_action('member_list')(ctx, dd)