From ed7a260c5ef7576bc54a685807dd637da1649352 Mon Sep 17 00:00:00 2001 From: Bryan Date: Sat, 23 May 2020 22:45:58 +0800 Subject: [PATCH 1/2] add tests for describe objects --- testing/test_awswrangler/test_moto.py | 48 +++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/testing/test_awswrangler/test_moto.py b/testing/test_awswrangler/test_moto.py index 9e754d47a..3bb8bca52 100644 --- a/testing/test_awswrangler/test_moto.py +++ b/testing/test_awswrangler/test_moto.py @@ -72,6 +72,54 @@ def test_list_directories_succeed(s3): "s3://bucket/bar/bar.tmp"]) +def test_describe_one_object_succeed(s3): + bucket = "bucket" + key = "foo/foo.tmp" + s3_object = s3.Object(bucket, key) + s3_object.put(Body=b'foo') + + desc = wr.s3.describe_objects("s3://{}/{}".format(bucket, key)) + print(desc) + assert isinstance(desc, dict) + assert list(desc.keys()) == ['s3://bucket/foo/foo.tmp'] + + +def test_describe_list_of_objects_succeed(s3): + bucket = "bucket" + keys = ["foo/foo.tmp", + "bar/bar.tmp"] + + for key in keys: + s3_object = s3.Object(bucket, key) + s3_object.put(Body=b'test') + + desc = wr.s3.describe_objects( + ["s3://{}/{}".format(bucket, key) for key in keys] + ) + + assert isinstance(desc, dict) + assert sorted(list(desc.keys())) == sorted(["s3://bucket/foo/foo.tmp", + "s3://bucket/bar/bar.tmp"]) + + +def test_describe_list_of_objects_under_same_prefix_succeed(s3): + bucket = "bucket" + keys = ["foo/foo.tmp", + "bar/bar.tmp"] + + for key in keys: + s3_object = s3.Object(bucket, key) + s3_object.put(Body=b'test') + + desc = wr.s3.describe_objects( + "s3://{}".format(bucket) + ) + + assert isinstance(desc, dict) + assert sorted(list(desc.keys())) == sorted(["s3://bucket/foo/foo.tmp", + "s3://bucket/bar/bar.tmp"]) + + def test_csv(s3): path = "s3://bucket/test.csv" wr.s3.to_csv(df=get_df_csv(), path=path, index=False) From 524f59e5c0514da3bebf71ace47cde9d20a4cbac Mon Sep 17 00:00:00 2001 From: Bryan Date: Sat, 23 May 2020 22:59:49 +0800 Subject: [PATCH 2/2] add test for no object --- testing/test_awswrangler/test_moto.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/testing/test_awswrangler/test_moto.py b/testing/test_awswrangler/test_moto.py index 3bb8bca52..fde0d78cb 100644 --- a/testing/test_awswrangler/test_moto.py +++ b/testing/test_awswrangler/test_moto.py @@ -72,6 +72,14 @@ def test_list_directories_succeed(s3): "s3://bucket/bar/bar.tmp"]) +def test_describe_no_object_succeed(s3): + + desc = wr.s3.describe_objects("s3://bucket") + + assert isinstance(desc, dict) + assert desc == {} + + def test_describe_one_object_succeed(s3): bucket = "bucket" key = "foo/foo.tmp" @@ -79,7 +87,7 @@ def test_describe_one_object_succeed(s3): s3_object.put(Body=b'foo') desc = wr.s3.describe_objects("s3://{}/{}".format(bucket, key)) - print(desc) + assert isinstance(desc, dict) assert list(desc.keys()) == ['s3://bucket/foo/foo.tmp']