import logging import pytest logger = logging.getLogger() @pytest.mark.parametrize("client_name", ["mock", "azure", "s3"], scope="session") class TestStorage: def test_clearing_bucket_yields_empty_bucket(self, storage, bucket_name): storage.clear_bucket(bucket_name) data_received = storage.get_all_objects(bucket_name) assert not {*data_received} def test_getting_object_put_in_bucket_is_object(self, storage, bucket_name): storage.clear_bucket(bucket_name) storage.put_object(bucket_name, "file", b"content") data_received = storage.get_object(bucket_name, "file") assert b"content" == data_received def test_getting_nested_object_put_in_bucket_is_nested_object(self, storage, bucket_name): storage.clear_bucket(bucket_name) storage.put_object(bucket_name, "folder/file", b"content") data_received = storage.get_object(bucket_name, "folder/file") assert b"content" == data_received def test_getting_objects_put_in_bucket_are_objects(self, storage, bucket_name): storage.clear_bucket(bucket_name) storage.put_object(bucket_name, "file1", b"content 1") storage.put_object(bucket_name, "folder/file2", b"content 2") data_received = storage.get_all_objects(bucket_name) assert {b"content 1", b"content 2"} == {*data_received} def test_make_bucket_produces_bucket(self, storage, bucket_name): storage.clear_bucket(bucket_name) storage.make_bucket(bucket_name) assert storage.has_bucket(bucket_name) def test_listing_bucket_files_yields_all_files_in_bucket(self, storage, bucket_name): storage.clear_bucket(bucket_name) storage.put_object(bucket_name, "file1", b"content 1") storage.put_object(bucket_name, "file2", b"content 2") full_names_received = storage.get_all_object_names(bucket_name) assert {(bucket_name, "file1"), (bucket_name, "file2")} == {*full_names_received}