Skip to content

Commit

Permalink
[#2037] Don't remove package_id before resource_create auth check
Browse files Browse the repository at this point in the history
I didn't find any good reason as to why it was being done, and it
prevents `resource_create` auth to check authorization against the
dataset.

Added action tests
  • Loading branch information
amercader committed Nov 12, 2014
1 parent 8b051f5 commit 424bd37
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
1 change: 0 additions & 1 deletion ckan/logic/action/create.py
Expand Up @@ -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})
Expand Down
26 changes: 26 additions & 0 deletions ckan/new_tests/logic/action/test_create.py
Expand Up @@ -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)
Expand Down

0 comments on commit 424bd37

Please sign in to comment.