Skip to content

Commit

Permalink
[#981] Call datapusher according to API
Browse files Browse the repository at this point in the history
  • Loading branch information
domoritz committed Aug 1, 2013
1 parent ad19d84 commit 10efe1c
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
18 changes: 16 additions & 2 deletions ckanext/datastore/logic/action.py
@@ -1,5 +1,6 @@
import logging
import json
import urlparse

import pylons
import requests
Expand Down Expand Up @@ -442,9 +443,22 @@ def datapusher_submit(context, data_dict):
:type set_url_to_dump: boolean
'''

# ToDo: add task
# ToDo: handle set_url_to_dump

p.toolkit.check_access('datapusher_submit', context, data_dict)
requests.post('http://datapusher.ckan.org/job', data=json.dumps({
'foo': 'bar'

datapusher_url = pylons.config.get(
'datapusher.url', 'http://datapusher.ckan.org/')

user = p.toolkit.get_action('user_show')(context, {'id': context['user']})
requests.post(urlparse.urljoin(datapusher_url, 'job'), data=json.dumps({
'api_key': user['apikey'],
'job_type': 'push_to_datastore',
'metadata': {
'ckan_url': pylons.config['ckan.site_url'],
'resource_id': data_dict['resource_id']
}
}))


Expand Down
9 changes: 6 additions & 3 deletions ckanext/datastore/tests/test_create.py
Expand Up @@ -543,7 +543,8 @@ def test_create_ckan_resource_in_package(self):

@httpretty.activate
def test_providing_res_with_url_calls_datapusher_correctly(self):
httpretty.HTTPretty.register_uri(httpretty.HTTPretty.POST,
httpretty.HTTPretty.register_uri(
httpretty.HTTPretty.POST,
'http://datapusher.ckan.org/job',
content_type='application/json',
body=json.dumps({'job_id': 'foo', 'job_key': 'bar'}))
Expand All @@ -557,8 +558,10 @@ def test_providing_res_with_url_calls_datapusher_correctly(self):
self.app.post('/api/action/datastore_create', params=postparams,
extra_environ=auth, status=200)

body = json.loads(httpretty.last_request().body)
assert body == {'foo': 'bar'}, body
assert len(package.resources) == 4, len(package.resources)
resource = package.resources[3]
data = json.loads(httpretty.last_request().body)
assert data['metadata']['resource_id'] == resource.id, data

def test_cant_provide_resource_and_resource_id(self):
package = model.Package.get('annakarenina')
Expand Down

0 comments on commit 10efe1c

Please sign in to comment.