import pytest

pytest.importorskip("s3fs")
pytest.importorskip("moto")

try:
    from s3fs.tests.test_s3fs import (  # noqa: F401
        endpoint_uri,
        s3,
        s3_base,
        test_bucket_name,
    )
except ImportError:
    pytest.skip("s3 tests not available.")

so = {"anon": False, "client_kwargs": {"endpoint_url": endpoint_uri}}


def test_pandas(s3):
    pd = pytest.importorskip("pandas")
    df = pd.DataFrame({"a": [1, 2], "b": [3, 4]})
    df.to_csv(f"s3://{test_bucket_name}/a.csv", storage_options=so)
    df2 = pd.read_csv(f"s3://{test_bucket_name}/a.csv", storage_options=so)

    assert df.a.equals(df2.a)


def test_xarray_zarr(s3):
    xr = pytest.importorskip("xarray")
    pytest.importorskip("zarr")
    import numpy as np

    x = np.arange(5)
    xarr = xr.DataArray(x)
    ds = xr.Dataset({"x": xarr})
    ds.to_zarr(f"s3://{test_bucket_name}/a.zarr", storage_options=so)

    ds2 = xr.open_zarr(f"s3://{test_bucket_name}/a.zarr", storage_options=so)

    assert (ds.x == ds2.x).all()
