|
|
@@ -15,14 +15,37 @@ |
|
|
from mock import Mock, patch
|
|
|
from importlib import import_module
|
|
|
|
|
|
from conductor.blueprints.user.controllers import PRIVATE_KEY
|
|
|
|
|
|
module = import_module('conductor.blueprints.package.controllers')
|
|
|
Response = namedtuple('Response', ['status_code'])
|
|
|
dpp_module = import_module('datapackage.helpers')
|
|
|
class Response:
|
|
|
def __init__(self, status_code, _json):
|
|
|
self.status_code = status_code
|
|
|
self._json = _json
|
|
|
|
|
|
def json(self):
|
|
|
return self._json
|
|
|
|
|
|
def raise_for_status(self):
|
|
|
pass
|
|
|
|
|
|
datapackage = {
|
|
|
'name': 'my-dataset',
|
|
|
'resources': [
|
|
|
{
|
|
|
'name': 'my-resource',
|
|
|
'path': '.',
|
|
|
'schema': {
|
|
|
'fields': [
|
|
|
{'name': 'year', 'type': 'integer', 'osType': 'date:fiscal-year'}
|
|
|
]
|
|
|
}
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
|
|
|
_cache = {}
|
|
|
callback = 'http://conductor/callback'
|
|
|
token = jwt.encode({'userid': 'owner'}, PRIVATE_KEY, algorithm='RS256').decode('ascii')
|
|
|
|
|
|
token = None
|
|
|
|
|
|
def cache_get(key):
|
|
|
global _cache
|
|
|
@@ -39,20 +62,25 @@ class ApiloadTest(unittest.TestCase): |
|
|
# Actions
|
|
|
|
|
|
def setUp(self):
|
|
|
from conductor.blueprints.user.controllers import PRIVATE_KEY
|
|
|
global token
|
|
|
|
|
|
self.private_key = PRIVATE_KEY
|
|
|
token = jwt.encode({'userid': 'owner'}, PRIVATE_KEY, algorithm='RS256').decode('ascii')
|
|
|
|
|
|
# Cleanup
|
|
|
self.addCleanup(patch.stopall)
|
|
|
|
|
|
# Various patches
|
|
|
self.requests = patch.object(module, 'requests').start()
|
|
|
self.requests = patch.object(dpp_module, 'requests').start()
|
|
|
self.runner = patch.object(module, 'DppRunner').start()
|
|
|
module.os_api = 'api'
|
|
|
module.os_conductor = 'conductor'
|
|
|
|
|
|
global _cache
|
|
|
_cache = {}
|
|
|
|
|
|
# Tests
|
|
|
|
|
|
def assertResponse(self, ret, status=None, progress=None, error=None):
|
|
|
if status is not None:
|
|
|
self.assertEquals(ret['status'], status)
|
|
|
@@ -63,8 +91,9 @@ def assertResponse(self, ret, status=None, progress=None, error=None): |
|
|
|
|
|
def test___load___good_request(self):
|
|
|
api_load = module.upload
|
|
|
self.requests.get = Mock(return_value=Response(200))
|
|
|
self.assertResponse(api_load('bla', token, cache_get, cache_set), 'queued', 0)
|
|
|
module.runner.start = Mock(return_value=None)
|
|
|
self.requests.get = Mock(return_value=Response(200, datapackage))
|
|
|
self.assertResponse(api_load('http://bla', token, cache_get, cache_set), 'queued', 0)
|
|
|
|
|
|
# def test___load___bad_request(self):
|
|
|
# api_load = module.upload
|
|
|
@@ -78,12 +107,12 @@ def test___load___good_request(self): |
|
|
|
|
|
def test___callback___server_down(self):
|
|
|
api_load = module.upload
|
|
|
self.requests.get = Mock(return_value=Response(499))
|
|
|
self.assertResponse(api_load('bla', token, cache_get, cache_set), 'fail', error='HTTP 499')
|
|
|
self.requests.get = Mock(return_value=Response(499, datapackage))
|
|
|
self.assertResponse(api_load('http://bla', token, cache_get, cache_set), 'fail', error='HTTP 499')
|
|
|
|
|
|
def test___poll___good_request(self):
|
|
|
api_load = module.upload
|
|
|
self.requests.get = Mock(return_value=Response(200))
|
|
|
self.requests.get = Mock(return_value=Response(200, datapackage))
|
|
|
api_load('bla2', token, cache_get, cache_set)
|
|
|
|
|
|
api_poll = module.upload_status
|
|
|
|
0 comments on commit
b74df04