def test_datasets_pagination(dataset_data): with requests_mock.mock() as m: page1_data = { 'meta': {'next': '/api/v1/datasets/?limit=2&offset=2', 'total_count': 3}, 'objects': [ dataset_data, copy.copy(dataset_data) ] } page1_data['objects'][1]['id'] = 'a1b2c4' page2_data = { 'meta': {'next': None, 'total_count': 3}, 'objects': [ copy.copy(dataset_data) ] } page2_data['objects'][0]['id'] = 'a1b2c5' m.get('https://databasin.org/api/v1/datasets/', text=json.dumps(page1_data)) m.get('https://databasin.org/api/v1/datasets/?offset=2', text=json.dumps(page2_data)) c = Client() datasets = c.list_datasets() assert len(datasets) == 3 datasets = list(datasets) assert m.call_count == 2 assert len(datasets) == 3 assert datasets[0].id == 'a1b2c3' assert datasets[1].id == 'a1b2c4' assert datasets[2].id == 'a1b2c5'
def test_datasets_pagination(dataset_data): with requests_mock.mock() as m: page1_data = { 'meta': { 'next': '/api/v1/datasets/?limit=2&offset=2', 'total_count': 3 }, 'objects': [dataset_data, copy.copy(dataset_data)] } page1_data['objects'][1]['id'] = 'a1b2c4' page2_data = { 'meta': { 'next': None, 'total_count': 3 }, 'objects': [copy.copy(dataset_data)] } page2_data['objects'][0]['id'] = 'a1b2c5' m.get('https://databasin.org/api/v1/datasets/', text=json.dumps(page1_data)) m.get('https://databasin.org/api/v1/datasets/?offset=2', text=json.dumps(page2_data)) c = Client() datasets = c.list_datasets() assert len(datasets) == 3 datasets = list(datasets) assert m.call_count == 2 assert len(datasets) == 3 assert datasets[0].id == 'a1b2c3' assert datasets[1].id == 'a1b2c4' assert datasets[2].id == 'a1b2c5'
def test_datasets_with_filter(): with requests_mock.mock() as m: data = {'meta': {'next': None, 'total_count': 0}, 'objects': []} m.get('https://databasin.org/api/v1/datasets/?private=False', text=json.dumps(data)) c = Client() datasets = c.list_datasets({'private': False}) list(datasets) assert m.called assert m.request_history[0].qs['private'] == ['false']
def test_datasets_with_filter(): with requests_mock.mock() as m: data = { 'meta': {'next': None, 'total_count': 0}, 'objects': [] } m.get('https://databasin.org/api/v1/datasets/?private=False', text=json.dumps(data)) c = Client() datasets = c.list_datasets({'private': False}) list(datasets) assert m.called assert m.request_history[0].qs['private'] == ['false']
def test_list_datasets(dataset_data): with requests_mock.mock() as m: data = { 'meta': {'next': None, 'total_count': 2}, 'objects': [ dataset_data, copy.copy(dataset_data) ] } data['objects'][1]['id'] = 'a1b2c4' m.get('https://databasin.org/api/v1/datasets/', text=json.dumps(data)) c = Client() datasets = c.list_datasets() assert len(datasets) == 2 datasets = list(datasets) assert len(datasets) == 2 assert datasets[0].id == 'a1b2c3' assert datasets[1].id == 'a1b2c4'
def test_list_datasets(dataset_data): with requests_mock.mock() as m: data = { 'meta': { 'next': None, 'total_count': 2 }, 'objects': [dataset_data, copy.copy(dataset_data)] } data['objects'][1]['id'] = 'a1b2c4' m.get('https://databasin.org/api/v1/datasets/', text=json.dumps(data)) c = Client() datasets = c.list_datasets() assert len(datasets) == 2 datasets = list(datasets) assert len(datasets) == 2 assert datasets[0].id == 'a1b2c3' assert datasets[1].id == 'a1b2c4'