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