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'
Example #2
0
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'
Example #3
0
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'
Example #6
0
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'