def test_invalid_encoding_chunks_with_numpy_raise(): data = np.zeros((10, 20, 30)) ds = xr.Dataset({'foo': (['x', 'y', 'z'], data)}) ds['foo'].encoding['chunks'] = [8, 5, 1] with pytest.raises(ValueError) as excinfo: _ = create_zmetadata(ds) excinfo.match(r'Encoding chunks do not match inferred.*')
def test_invalid_encoding_chunks_with_dask_raise(): expected = [4, 5, 1] data = dask.array.zeros((10, 20, 30), chunks=expected) ds = xr.Dataset({'foo': (['x', 'y', 'z'], data)}) ds['foo'].encoding['chunks'] = [8, 5, 1] with pytest.raises(NotImplementedError) as excinfo: _ = create_zmetadata(ds) excinfo.match(r'Specified zarr chunks .*')
def test_invalid_dask_chunks_raise(): data1 = dask.array.zeros((10, 20, 30), chunks=(4, 10, 1)) data2 = dask.array.zeros((10, 20, 30), chunks=(4, 5, 1)) data = dask.array.concatenate([data1, data2]) ds = xr.Dataset({'foo': (['x', 'y', 'z'], data)}) with pytest.raises(ValueError) as excinfo: _ = create_zmetadata(ds) excinfo.match(r'Zarr requires uniform chunk sizes .*')
def test_dask_chunks_become_zarr_chunks(): expected = [4, 5, 1] data1 = dask.array.zeros((10, 20, 30), chunks=expected) data2 = np.zeros((10, 20, 30)) ds = xr.Dataset({'foo': (['x', 'y', 'z'], data1), 'bar': (['x', 'y', 'z'], data2)}) zmeta = create_zmetadata(ds) assert zmeta['metadata']['foo/.zarray']['chunks'] == expected assert zmeta['metadata']['bar/.zarray']['chunks'] == list(data2.shape)
def test_zmetadata(airtemp_ds, airtemp_app): response = airtemp_app.get('/.zmetadata') assert response.status_code == 200 assert response.json() == jsonify_zmetadata(airtemp_ds, create_zmetadata(airtemp_ds))
def test_get_zmetadata_key(airtemp_ds): mapper = TestMapper(airtemp_ds.rest.app) actual = json.loads(mapper['.zmetadata'].decode()) expected = jsonify_zmetadata(airtemp_ds, create_zmetadata(airtemp_ds)) assert actual == expected