Skip to content

Commit 5ab3640

Browse files
committed
Add test for json_indent
1 parent 61f6dd0 commit 5ab3640

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

tests/test_metadata/test_v3.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from zarr.codecs.bytes import BytesCodec
1111
from zarr.core.buffer import default_buffer_prototype
1212
from zarr.core.chunk_key_encodings import DefaultChunkKeyEncoding, V2ChunkKeyEncoding
13-
from zarr.core.group import parse_node_type
13+
from zarr.core.group import parse_node_type, GroupMetadata
1414
from zarr.core.metadata.v3 import (
1515
ArrayV3Metadata,
1616
DataType,
@@ -304,6 +304,19 @@ def test_metadata_to_dict(
304304
assert observed == expected
305305

306306

307+
def test_json_indent():
308+
m = GroupMetadata()
309+
d = m.to_buffer_dict(default_buffer_prototype())["zarr.json"].to_bytes()
310+
class TestIndentEncoder(json.JSONEncoder):
311+
def __init__(self, *args: Any, **kwargs: Any) -> None:
312+
super().__init__(*args, **kwargs)
313+
self.indent = 2
314+
315+
# expected has extra ' ' on each line compared with json.dumps( indent=2)
316+
expected = json.dumps(json.loads(d), cls=TestIndentEncoder).encode()
317+
assert d == expected
318+
319+
307320
# @pytest.mark.parametrize("fill_value", [-1, 0, 1, 2932897])
308321
# @pytest.mark.parametrize("precision", ["ns", "D"])
309322
# async def test_datetime_metadata(fill_value: int, precision: str) -> None:

0 commit comments

Comments
 (0)