Skip to content

Commit b3b77ab

Browse files
committed
adds tests to datatree backend to assert multiple dimensions downloaded at once (per group)
1 parent ee03ed6 commit b3b77ab

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

xarray/tests/test_backends_datatree.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import numpy as np
1010
import pytest
11+
from packaging.version import Version
1112

1213
import xarray as xr
1314
from xarray.backends.api import open_datatree, open_groups
@@ -494,7 +495,15 @@ def test_inherited_coords(self, url=simplegroup_datatree_url) -> None:
494495
│ Temperature (time, Z, Y, X) float32 ...
495496
| Salinity (time, Z, Y, X) float32 ...
496497
"""
497-
tree = open_datatree(url, engine=self.engine)
498+
import pydap
499+
from requests_cache import CachedSession
500+
501+
_version_ = Version(pydap.__version__)
502+
503+
session = CachedSession()
504+
session.cache.clear()
505+
506+
tree = open_datatree(url, engine=self.engine, session=session)
498507
assert set(tree.dims) == {"time", "Z", "nv"}
499508
assert tree["/SimpleGroup"].coords["time"].dims == ("time",)
500509
assert tree["/SimpleGroup"].coords["Z"].dims == ("Z",)
@@ -505,6 +514,19 @@ def test_inherited_coords(self, url=simplegroup_datatree_url) -> None:
505514
list(expected.dims) + ["Z", "nv"]
506515
)
507516

517+
# group (including root). So in this case 3. In the future there
518+
# should a only be 2 downloads (all dimensions should be downloaded)
519+
# within single
520+
521+
if _version_ > Version("3.5.5"):
522+
# Total downloads are: 1 dmr, + 1 dap url per Group | root.
523+
# since there is a group then 2 dap url. In the future there
524+
# should only be 1 dap url downloaded.
525+
assert len(session.cache.urls()) == 3
526+
else:
527+
# 1 dmr + 1 dap url per dimension (total there are 4 dimension arrays)
528+
assert len(session.cache.urls()) == 5
529+
508530
def test_open_groups_to_dict(self, url=all_aligned_child_nodes_url) -> None:
509531
aligned_dict_of_datasets = open_groups(url, engine=self.engine)
510532
aligned_dt = DataTree.from_dict(aligned_dict_of_datasets)

0 commit comments

Comments
 (0)