40 lines
934 B
Python
40 lines
934 B
Python
from unittest.mock import patch
|
|
|
|
from bonobo.contrib.opendatasoft import OpenDataSoftAPI
|
|
from bonobo.util.objects import ValueHolder
|
|
|
|
|
|
class ResponseMock:
|
|
def __init__(self, json_value):
|
|
self.json_value = json_value
|
|
self.count = 0
|
|
|
|
def json(self):
|
|
if self.count:
|
|
return {}
|
|
else:
|
|
self.count += 1
|
|
return {
|
|
'records': self.json_value,
|
|
}
|
|
|
|
|
|
def test_read_from_opendatasoft_api():
|
|
extract = OpenDataSoftAPI(dataset='test-a-set')
|
|
with patch(
|
|
'requests.get', return_value=ResponseMock([
|
|
{
|
|
'fields': {
|
|
'foo': 'bar'
|
|
}
|
|
},
|
|
{
|
|
'fields': {
|
|
'foo': 'zab'
|
|
}
|
|
},
|
|
])
|
|
):
|
|
for line in extract('http://example.com/', ValueHolder(0)):
|
|
assert 'foo' in line
|