diff --git a/intake_esm/cat.py b/intake_esm/cat.py index 8df7f6e2..d115d85a 100644 --- a/intake_esm/cat.py +++ b/intake_esm/cat.py @@ -111,7 +111,7 @@ class ESMCatalogModel(pydantic.BaseModel): esmcat_version: pydantic.StrictStr attributes: typing.List[Attribute] assets: Assets - aggregation_control: AggregationControl + aggregation_control: typing.Optional[AggregationControl] = None id: typing.Optional[str] = '' catalog_dict: typing.Optional[typing.List[typing.Dict]] = None catalog_file: pydantic.StrictStr = None diff --git a/tests/test_cat.py b/tests/test_cat.py index 875a1eef..6726c31d 100644 --- a/tests/test_cat.py +++ b/tests/test_cat.py @@ -12,6 +12,7 @@ multi_variable_cat, sample_df, sample_esmcat_data, + sample_esmcat_data_without_agg, zarr_cat_aws_cesm, zarr_cat_pangeo_cmip6, ) @@ -54,12 +55,15 @@ def test_esmcatmodel_load(file): assert isinstance(cat.has_multiple_variable_assets, bool) -def test_esmcatmodel_from_dict(): - cat = ESMCatalogModel.from_dict({'esmcat': sample_esmcat_data, 'df': sample_df}) +@pytest.mark.parametrize( + 'esmcat_data', + [sample_esmcat_data, sample_esmcat_data_without_agg], +) +def test_esmcatmodel_from_dict(esmcat_data): + cat = ESMCatalogModel.from_dict({'esmcat': esmcat_data, 'df': sample_df}) assert isinstance(cat, ESMCatalogModel) assert isinstance(cat.df, pd.DataFrame) assert isinstance(cat.columns_with_iterables, set) - assert isinstance(cat.has_multiple_variable_assets, bool) @pytest.mark.parametrize(