77from rasterio .io import MemoryFile
88from starlette .testclient import TestClient
99
10- from titiler .xarray .extensions import VariablesExtension
10+ from titiler .xarray .extensions import DatasetMetadataExtension , VariablesExtension
1111from titiler .xarray .factory import TilerFactory
1212
1313prefix = os .path .join (os .path .dirname (__file__ ), "fixtures" )
1919zarr_pyramid = os .path .join (prefix , "pyramid.zarr" )
2020
2121
22+ def test_deprecated_extension ():
23+ """Test factory with options."""
24+ """Test TilerFactory class."""
25+ with pytest .warns (DeprecationWarning ):
26+ md = TilerFactory (extensions = [VariablesExtension ()])
27+ assert len (md .router .routes ) == 20
28+
29+
2230def test_tiler_factory ():
2331 """Test factory with options."""
2432 """Test TilerFactory class."""
2533 md = TilerFactory (
26- add_viewer = False , add_part = False , extensions = [VariablesExtension ()]
34+ add_viewer = False ,
35+ add_part = False ,
36+ extensions = [DatasetMetadataExtension ()],
2737 )
28- assert len (md .router .routes ) == 14
38+ assert len (md .router .routes ) == 16
2939
30- md = TilerFactory (router_prefix = "/md" , extensions = [VariablesExtension ()])
31- assert len (md .router .routes ) == 20
40+ md = TilerFactory (router_prefix = "/md" , extensions = [DatasetMetadataExtension ()])
41+ assert len (md .router .routes ) == 22
3242
3343 app = FastAPI ()
3444 app .include_router (md .router , prefix = "/md" )
@@ -44,8 +54,8 @@ def test_tiler_factory():
4454@pytest .fixture
4555def app ():
4656 """App fixture."""
47- md = TilerFactory (router_prefix = "/md" , extensions = [VariablesExtension ()])
48- assert len (md .router .routes ) == 20
57+ md = TilerFactory (router_prefix = "/md" , extensions = [DatasetMetadataExtension ()])
58+ assert len (md .router .routes ) == 22
4959
5060 app = FastAPI ()
5161 app .include_router (md .router , prefix = "/md" )
@@ -57,13 +67,22 @@ def app():
5767 "filename" ,
5868 [dataset_2d_nc , dataset_3d_nc , dataset_3d_zarr ],
5969)
60- def test_variable (filename , app ):
61- """Test /variables endpoint ."""
62- resp = app .get ("/md/variables " , params = {"url" : filename })
70+ def test_dataset_extension (filename , app ):
71+ """Test /dataset endpoints ."""
72+ resp = app .get ("/md/dataset/keys " , params = {"url" : filename })
6373 assert resp .status_code == 200
6474 assert resp .headers ["content-type" ] == "application/json"
6575 assert resp .json () == ["dataset" ]
6676
77+ resp = app .get ("/md/dataset/dict" , params = {"url" : filename })
78+ assert resp .status_code == 200
79+ assert resp .headers ["content-type" ] == "application/json"
80+ assert resp .json ()["data_vars" ]["dataset" ]
81+
82+ resp = app .get ("/md/dataset/" , params = {"url" : filename })
83+ assert resp .status_code == 200
84+ assert "text/html" in resp .headers ["content-type" ]
85+
6786
6887@pytest .mark .parametrize (
6988 "filename" ,
0 commit comments