diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py index 18477c47966..6768d470702 100644 --- a/ckan/logic/action/create.py +++ b/ckan/logic/action/create.py @@ -261,6 +261,7 @@ def resource_create(context, data_dict): 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 new file mode 100644 index 00000000000..5f8538aef92 --- /dev/null +++ b/ckan/new_tests/logic/action/test_create.py @@ -0,0 +1,29 @@ +import nose.tools + +import ckan.model as model +import ckan.logic as logic +import ckan.new_tests.helpers as helpers +import ckan.new_tests.factories as factories + +eq = nose.tools.eq_ + + +class TestCreate(object): + + @classmethod + def setup_class(cls): + helpers.reset_db() + + def setup(self): + model.repo.rebuild_db() + + def test_resource_create_requires_url(self): + user = factories.User() + dataset = factories.Dataset(user=user) + data_dict = { + 'package_id': dataset['id'] + } + + nose.tools.assert_raises(logic.ValidationError, + helpers.call_action, + 'resource_create', **data_dict)