Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
from __future__ import annotations

import json
import pickle
from pathlib import Path
from typing import Any, TypeVar

import pytest

import zarr
from icechunk import IcechunkError, IcechunkStore, local_filesystem_storage
from icechunk.repository import Repository
from zarr.abc.store import OffsetByteRequest, RangeByteRequest, Store, SuffixByteRequest
from zarr.core.buffer import Buffer, cpu, default_buffer_prototype
from zarr.core.sync import _collect_aiterator, collect_aiterator, sync
from zarr.core.sync import _collect_aiterator, collect_aiterator
from zarr.testing.store import StoreTests
from zarr.testing.utils import assert_bytes_equal

Expand Down Expand Up @@ -544,51 +542,3 @@ async def test_getsize_raises(self, store: IcechunkStore) -> None:
# TODO: This maybe should be a FileNotFoundError instead of an IcechunkError
with pytest.raises(IcechunkError):
await store.getsize("not-a-real-key")

@pytest.mark.skipif(
zarr.__version__ < "3.1.6", reason="Store._get_bytes added in zarr 3.1.6"
)
async def test_get_bytes(self, store: IcechunkStore) -> None:
# Override: icechunk validates metadata on zarr.json keys,
# so we must use valid zarr metadata instead of arbitrary bytes
data = DEFAULT_GROUP_METADATA
key = "zarr.json"
await self.set(store, key, self.buffer_cls.from_bytes(data))
assert await store._get_bytes(key, prototype=default_buffer_prototype()) == data
with pytest.raises((FileNotFoundError, ValueError, IcechunkError)):
await store._get_bytes(
"nonexistent_key", prototype=default_buffer_prototype()
)

@pytest.mark.skipif(
zarr.__version__ < "3.1.6", reason="Store._get_bytes_sync added in zarr 3.1.6"
)
def test_get_bytes_sync(self, store: IcechunkStore) -> None:
# Override: icechunk validates metadata on zarr.json keys
data = DEFAULT_GROUP_METADATA
key = "zarr.json"
sync(self.set(store, key, self.buffer_cls.from_bytes(data)))
assert store._get_bytes_sync(key, prototype=default_buffer_prototype()) == data

@pytest.mark.skipif(
zarr.__version__ < "3.1.6", reason="Store._get_json added in zarr 3.1.6"
)
async def test_get_json(self, store: IcechunkStore) -> None:
# Override: icechunk validates metadata on zarr.json keys,
# so we must use valid zarr metadata instead of arbitrary JSON
data = json.loads(DEFAULT_GROUP_METADATA)
data_bytes = DEFAULT_GROUP_METADATA
key = "zarr.json"
await self.set(store, key, self.buffer_cls.from_bytes(data_bytes))
assert await store._get_json(key, prototype=default_buffer_prototype()) == data

@pytest.mark.skipif(
zarr.__version__ < "3.1.6", reason="Store._get_json_sync added in zarr 3.1.6"
)
def test_get_json_sync(self, store: IcechunkStore) -> None:
# Override: icechunk validates metadata on zarr.json keys
data = json.loads(DEFAULT_GROUP_METADATA)
data_bytes = DEFAULT_GROUP_METADATA
key = "zarr.json"
sync(self.set(store, key, self.buffer_cls.from_bytes(data_bytes)))
assert store._get_json_sync(key, prototype=default_buffer_prototype()) == data
Loading