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