diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py index 43b39ac120d..0eadc45e9f0 100644 --- a/ckan/logic/action/create.py +++ b/ckan/logic/action/create.py @@ -262,7 +262,6 @@ def resource_create(context, data_dict): user = context['user'] package_id = _get_or_bust(data_dict, 'package_id') - data_dict.pop('package_id') _get_or_bust(data_dict, 'url') pkg_dict = _get_action('package_show')(context, {'id': package_id}) diff --git a/ckan/new_tests/logic/action/test_create.py b/ckan/new_tests/logic/action/test_create.py index 33843856854..e5ab149096c 100644 --- a/ckan/new_tests/logic/action/test_create.py +++ b/ckan/new_tests/logic/action/test_create.py @@ -172,6 +172,32 @@ def setup_class(cls): def setup(self): model.repo.rebuild_db() + def test_resource_create(self): + context = {} + params = { + 'package_id': factories.Dataset()['id'], + 'url': 'http://data', + 'name': 'A nice resource', + } + result = helpers.call_action('resource_create', context, **params) + + id = result.pop('id') + + assert id + + params.pop('package_id') + for key in params.keys(): + assert_equals(params[key], result[key]) + + def test_it_requires_package_id(self): + + data_dict = { + 'url': 'http://data', + } + + assert_raises(logic.ValidationError, helpers.call_action, + 'resource_create', **data_dict) + def test_it_requires_url(self): user = factories.User() dataset = factories.Dataset(user=user)