def test_from_sane_config(sane_config):
    with pytest.raises(
        ValueError, match="Cannot instantiate a `DataCatalogWithDefault`"
    ):
        DataCatalogWithDefault.from_config(
            sane_config["catalog"], sane_config["credentials"]
        )
def test_save_and_load_catalog(data_set, dummy_dataframe, tmpdir):
    catalog = DataCatalogWithDefault(data_sets={"test": data_set}, default=default_csv)

    path = str(tmpdir.mkdir("sub").join("test"))
    catalog.save(path, dummy_dataframe)
    reloaded_df = catalog.load(path)
    assert dummy_dataframe.equals(reloaded_df)
def test_load_from_unregistered(dummy_dataframe, tmpdir):
    catalog = DataCatalogWithDefault(data_sets={}, default=default_csv)

    path = str(tmpdir.mkdir("sub").join("test.csv"))
    catalog.save(path, dummy_dataframe)
    reloaded_df = catalog.load(path)

    assert dummy_dataframe.equals(reloaded_df)
def test_remember_save(tmpdir, dummy_dataframe):
    catalog = DataCatalogWithDefault(data_sets={},
                                     default=default_csv,
                                     remember=True)

    path = str(tmpdir.mkdir("sub").join("test.csv"))
    catalog.save(path, dummy_dataframe)
    assert tmpdir.join("sub").join("test.csv") in catalog.list()
def test_default_none():
    with pytest.raises(
            TypeError,
            match="Default must be a callable with a "
            "single input string argument: the "
            "key of the requested data set.",
    ):
        DataCatalogWithDefault(data_sets={}, default=None)
def test_from_sane_config_default(sane_config, dummy_dataframe, tmpdir):
    catalog = DataCatalog.from_config(sane_config["catalog"],
                                      sane_config["credentials"])
    catalog_with_default = DataCatalogWithDefault.from_data_catalog(
        catalog, default_csv)
    path = str(tmpdir.mkdir("sub").join("missing.csv"))
    catalog_with_default.save(path, dummy_dataframe)
    reloaded_df = catalog_with_default.load(path)
    assert dummy_dataframe.equals(reloaded_df)
def test_remember_load():
    catalog = DataCatalogWithDefault(data_sets={},
                                     default=default_memory,
                                     remember=True)
    assert catalog.load("any") == 5
    assert "any" in catalog.list()