diff --git a/shared/storage/aws.py b/shared/storage/aws.py deleted file mode 100644 index 689900ab3..000000000 --- a/shared/storage/aws.py +++ /dev/null @@ -1,148 +0,0 @@ -import gzip -import logging - -import boto3 -from botocore.exceptions import ClientError - -from shared.storage.base import CHUNK_SIZE, BaseStorageService -from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError - -log = logging.getLogger(__name__) - - -class AWSStorageService(BaseStorageService): - def __init__(self, aws_config): - self.config = aws_config - self.storage_client = boto3.client( - aws_config.get("resource"), - aws_access_key_id=aws_config.get("aws_access_key_id"), - aws_secret_access_key=aws_config.get("aws_secret_access_key"), - region_name=aws_config.get("region_name"), - ) - - def create_root_storage(self, bucket_name="archive", region="us-east-1"): - """ - Creates root storage (or bucket, as in some terminologies) - - Note: - AWS API wont return an error if you attempt to create a bucket that - already exists in us-east-1 region. However, it does return an error - if you attempt to create a bucket that already exists in any other region. - - Args: - bucket_name (str): The name of the bucket to be created (default: {'archive'}) - region (str): The region in which the bucket will be created (default: {'us-east-1'}) - - Raises: - BucketAlreadyExistsError: If the bucket already exists - """ - - if region == "us-east-1": - try: - self.storage_client.head_bucket(Bucket=bucket_name) - raise BucketAlreadyExistsError(f"Bucket {bucket_name} already exists") - except ClientError as e: - if e.response["Error"]["Code"] == "404": - self.storage_client.create_bucket(Bucket=bucket_name) - else: - try: - location = {"LocationConstraint": region} - self.storage_client.create_bucket( - Bucket=bucket_name, CreateBucketConfiguration=location - ) - except ClientError as e: - if e.response["Error"]["Code"] == "BucketAlreadyOwnedByYou": - raise BucketAlreadyExistsError( - f"Bucket {bucket_name} already exists" - ) - else: - raise - return {"name": bucket_name} - - def write_file( - self, - bucket_name, - path, - data, - reduced_redundancy=False, - *, - is_already_gzipped: bool = False, - ): - """ - Writes a new file with the contents of `data` - (What happens if the file already exists?) - - Args: - bucket_name (str): The name of the bucket for the file to be created on - path (str): The desired path of the file - data (str): The data to be written to the file - reduced_redundancy (bool): Whether a reduced redundancy mode should be used (default: {False}) - is_already_gzipped (bool): Whether the file is already gzipped (default: {False}) - - """ - storage_class = "REDUCED_REDUNDANCY" if reduced_redundancy else "STANDARD" - self.storage_client.put_object( - Bucket=bucket_name, Key=path, Body=data, StorageClass=storage_class - ) - return True - - def read_file(self, bucket_name, path, file_obj=None): - """Reads the content of a file - - Args: - bucket_name (str): The name of the bucket for the file lives - path (str): The path of the file - - Raises: - NotImplementedError: If the current instance did not implement this method - FileNotInStorageError: If the file does not exist - - Returns: - bytes : The contents of that file, still encoded as bytes - """ - try: - obj = self.storage_client.get_object(Bucket=bucket_name, Key=path) - except ClientError as e: - if e.response["Error"]["Code"] == "NoSuchKey": - raise FileNotInStorageError( - f"File {path} does not exist in {bucket_name}" - ) - else: - raise - content = obj["Body"].read() - try: - content = gzip.decompress(content) - except OSError: - pass - if file_obj is None: - return content - else: - chunks = [ - content[i : i + CHUNK_SIZE] for i in range(0, len(content), CHUNK_SIZE) - ] - for chunk in chunks: - file_obj.write(chunk) - - def delete_file(self, bucket_name, path): - """Deletes a single file from the storage - - Note: - AWS returns a 204 regardless if the file is not already - there in the first place. - FileNotInStorageError wont be raised if a file doesnt exists. - - Args: - bucket_name (str): The name of the bucket for the file lives - path (str): The path of the file to be deleted - - Raises: - FileNotInStorageError: If the file does not exist - - Returns: - bool: True if the deletion was succesful - """ - try: - self.storage_client.delete_object(Bucket=bucket_name, Key=path) - return True - except ClientError: - raise diff --git a/shared/storage/fallback.py b/shared/storage/fallback.py deleted file mode 100644 index 247a8de1d..000000000 --- a/shared/storage/fallback.py +++ /dev/null @@ -1,90 +0,0 @@ -import logging - -from shared.storage.base import BaseStorageService -from shared.storage.exceptions import FileNotInStorageError - -log = logging.getLogger(__name__) - - -class StorageWithFallbackService(BaseStorageService): - def __init__(self, main_service, fallback_service): - self.main_service = main_service - self.fallback_service = fallback_service - - def create_root_storage(self, bucket_name="archive", region="us-east-1"): - res = self.main_service.create_root_storage(bucket_name, region) - self.fallback_service.create_root_storage(bucket_name, region) - return res - - def write_file( - self, - bucket_name, - path, - data, - reduced_redundancy=False, - *, - is_already_gzipped: bool = False, - ): - """ - Writes a new file with the contents of `data` - - Args: - bucket_name (str): The name of the bucket for the file to be created on - path (str): The desired path of the file - data (str): The data to be written to the file - reduced_redundancy (bool): Whether a reduced redundancy mode should be used (default: {False}) - is_already_gzipped (bool): Whether the file is already gzipped (default: {False}) - - """ - return self.main_service.write_file( - bucket_name, - path, - data, - reduced_redundancy, - is_already_gzipped=is_already_gzipped, - ) - - def read_file(self, bucket_name, path, file_obj=None): - """Reads the content of a file - - Args: - bucket_name (str): The name of the bucket for the file lives - path (str): The path of the file - - Raises: - NotImplementedError: If the current instance did not implement this method - FileNotInStorageError: If the file does not exist - - Returns: - bytes : The contents of that file, still encoded as bytes - """ - try: - return self.main_service.read_file(bucket_name, path, file_obj=file_obj) - except FileNotInStorageError: - log.info("File not in first storage, looking into second one") - return self.fallback_service.read_file(bucket_name, path, file_obj=file_obj) - - def delete_file(self, bucket_name, path): - """Deletes a single file from the storage - - Note: Not all implementations raise a FileNotInStorageError - if the file is not already there in the first place. - It seems that minio, for example, returns a 204 regardless. - So while you should prepare for a FileNotInStorageError, - know that if it is not raise, it doesn't mean the file - was there beforehand. - - Args: - bucket_name (str): The name of the bucket for the file lives - path (str): The path of the file to be deleted - - Raises: - NotImplementedError: If the current instance did not implement this method - FileNotInStorageError: If the file does not exist - - Returns: - bool: True if the deletion was succesful - """ - first_deletion = self.main_service.delete_file(bucket_name, path) - second_deletion = self.fallback_service.delete_file(bucket_name, path) - return first_deletion and second_deletion diff --git a/shared/storage/gcp.py b/shared/storage/gcp.py deleted file mode 100644 index d66b9862b..000000000 --- a/shared/storage/gcp.py +++ /dev/null @@ -1,144 +0,0 @@ -import gzip -import logging -from typing import IO - -import google.cloud.exceptions -from google.cloud import storage -from google.oauth2.service_account import Credentials - -from shared.storage.base import BaseStorageService -from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError - -log = logging.getLogger(__name__) - - -class GCPStorageService(BaseStorageService): - def __init__(self, gcp_config): - self.config = gcp_config - self.credentials = self.load_credentials(gcp_config) - self.storage_client = storage.Client( - project=self.credentials.project_id, credentials=self.credentials - ) - - def load_credentials(self, gcp_config): - location = gcp_config.get("google_credentials_location") - if location: - return Credentials.from_service_account_file(filename=location) - return Credentials.from_service_account_info(gcp_config) - - def get_blob(self, bucket_name, path): - bucket = self.storage_client.bucket(bucket_name) - return bucket.blob(path) - - def create_root_storage(self, bucket_name="archive", region="us-east-1"): - """ - Creates root storage (or bucket_name, as in some terminologies) - - Args: - bucket_name (str): The name of the bucket to be created (default: {'archive'}) - region (str): The region in which the bucket will be created (default: {'us-east-1'}) - - Raises: - NotImplementedError: If the current instance did not implement this method - """ - try: - bucket = self.storage_client.create_bucket(bucket_name) - return {"name": bucket.name} - except google.cloud.exceptions.Conflict: - raise BucketAlreadyExistsError(f"Bucket {bucket_name} already exists") - - def write_file( - self, - bucket_name: str, - path: str, - data: str | bytes | IO, - reduced_redundancy=False, - *, - is_already_gzipped: bool = False, - ): - """ - Writes a new file with the contents of `data` - (What happens if the file already exists?) - - - Args: - bucket_name (str): The name of the bucket for the file to be created on - path (str): The desired path of the file - data: The data to be written to the file - reduced_redundancy (bool): Whether a reduced redundancy mode should be used (default: {False}) - is_already_gzipped (bool): Whether the file is already gzipped (default: {False}) - """ - blob = self.get_blob(bucket_name, path) - - if isinstance(data, str): - data = data.encode() - if isinstance(data, bytes): - if not is_already_gzipped: - data = gzip.compress(data) - blob.content_encoding = "gzip" - blob.upload_from_string(data) - return True - else: - # data is a file-like object - blob.upload_from_file(data) - return True - - def read_file( - self, bucket_name: str, path: str, file_obj: IO | None = None, retry=0 - ) -> bytes: - """Reads the content of a file - - Args: - bucket_name (str): The name of the bucket for the file lives - path (str): The path of the file - - Raises: - FileNotInStorageError: If the file does not exist - - Returns: - bytes: The contents of that file, still encoded as bytes - """ - blob = self.get_blob(bucket_name, path) - - try: - blob.reload() - if ( - blob.content_type == "application/x-gzip" - and blob.content_encoding == "gzip" - ): - blob.content_type = "text/plain" - blob.content_encoding = "gzip" - blob.patch() - - if file_obj is None: - return blob.download_as_bytes(checksum="crc32c") - else: - blob.download_to_file(file_obj, checksum="crc32c") - return b"" # NOTE: this is to satisfy the return type - except google.cloud.exceptions.NotFound: - raise FileNotInStorageError(f"File {path} does not exist in {bucket_name}") - except google.resumable_media.common.DataCorruption: - if retry == 0: - log.info("Download checksum failed. Trying again") - return self.read_file(bucket_name, path, file_obj, retry=1) - raise - - def delete_file(self, bucket_name: str, path: str) -> bool: - """Deletes a single file from the storage (what happens if the file doesnt exist?) - - Args: - bucket_name (str): The name of the bucket for the file lives - path (str): The path of the file to be deleted - - Raises: - FileNotInStorageError: If the file does not exist - - Returns: - bool: True if the deletion was successful - """ - blob = self.get_blob(bucket_name, path) - try: - blob.delete() - except google.cloud.exceptions.NotFound: - raise FileNotInStorageError(f"File {path} does not exist in {bucket_name}") - return True diff --git a/shared/storage/minio.py b/shared/storage/minio.py index 24e0be9f4..9912894c9 100644 --- a/shared/storage/minio.py +++ b/shared/storage/minio.py @@ -3,10 +3,12 @@ import os from datetime import timedelta from functools import lru_cache -from typing import IO, BinaryIO, Literal, overload +from io import BytesIO +from typing import IO, BinaryIO, Literal, cast, overload import certifi import urllib3 +import zstandard from minio import Minio from minio.credentials.providers import ( ChainedProvider, @@ -16,27 +18,23 @@ ) from minio.error import MinioException, S3Error from minio.helpers import ObjectWriteResult -from urllib3 import Retry +from urllib3 import HTTPResponse, Retry from urllib3.util import Timeout -from shared.metrics import Summary -from shared.storage.base import BaseStorageService, PresignedURLService -from shared.storage.compression import zstd_decoded_by_default -from shared.storage.exceptions import BucketAlreadyExistsError -from shared.storage.read import new_minio_read -from shared.storage.write import new_minio_write +from shared.storage.base import ( + CHUNK_SIZE, + PART_SIZE, + BaseStorageService, + PresignedURLService, +) +from shared.storage.compression import GZipStreamReader, zstd_decoded_by_default +from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError log = logging.getLogger(__name__) CONNECT_TIMEOUT = 10 READ_TIMEOUT = 60 -MINIO_WRITE_TIME_SUMMARY = Summary( - "minio_write_time", - "Time taken to write to minio", - ["impl"], -) - def init_minio_client( host: str, @@ -204,17 +202,53 @@ def write_file( is_compressed: bool = False, compression_type: str | None = "zstd", ) -> ObjectWriteResult | Literal[True]: - return new_minio_write( - self.minio_client, + if isinstance(data, str): + data = BytesIO(data.encode()) + elif isinstance(data, (bytes, bytearray, memoryview)): + data = BytesIO(data) + + if is_already_gzipped: + is_compressed = True + compression_type = "gzip" + + result: IO[bytes] + if is_compressed: + result = data + else: + if compression_type == "zstd": + cctx = zstandard.ZstdCompressor() + result = cctx.stream_reader(data) + + elif compression_type == "gzip": + result = cast(IO[bytes], GZipStreamReader(data)) + + else: + result = data + + headers = {} + if compression_type: + headers["Content-Encoding"] = compression_type + if reduced_redundancy: + headers["x-amz-storage-class"] = "REDUCED_REDUNDANCY" + + # it's safe to do a BinaryIO cast here because we know that put_object only uses a function of the shape: + # read(self, size: int = -1, /) -> bytes + # GZipStreamReader implements this (we did it ourselves) + # ZstdCompressionReader implements read(): https://github.com/indygreg/python-zstandard/blob/12a80fac558820adf43e6f16206120685b9eb880/zstandard/__init__.pyi#L233C5-L233C49 + # BytesIO implements read(): https://docs.python.org/3/library/io.html#io.BufferedReader.read + # IO[bytes] implements read(): https://github.com/python/cpython/blob/3.13/Lib/typing.py#L3502 + write_result = self.minio_client.put_object( bucket_name, path, - data, - reduced_redundancy, - is_already_gzipped=is_already_gzipped, - is_compressed=is_compressed, - compression_type=compression_type, + cast(BinaryIO, result), + -1, + metadata=headers, + content_type="text/plain", + part_size=PART_SIZE, ) + return write_result + @overload def read_file(self, bucket_name: str, path: str) -> bytes: ... @@ -224,23 +258,58 @@ def read_file(self, bucket_name: str, path: str, file_obj: BinaryIO) -> None: .. def read_file( self, bucket_name: str, path: str, file_obj: BinaryIO | None = None ) -> bytes | None: - return new_minio_read( - self.minio_client, bucket_name, path, file_obj, zstd_default - ) + try: + response = cast( + HTTPResponse, + self.minio_client.get_object(bucket_name, path), + ) + except S3Error as e: + if e.code == "NoSuchKey": + raise FileNotInStorageError( + f"File {path} does not exist in {bucket_name}" + ) + raise e - """ - Deletes file url in specified bucket. - Return true on successful - deletion, returns a ResponseError otherwise. - """ + reader = cast(IO[bytes], response) + if ( + response.headers + and not zstd_default + and response.headers.get("Content-Encoding") == "zstd" + ): + # we have to manually decompress zstandard compressed data + cctx = zstandard.ZstdDecompressor() + # if the object passed to this has a read method then that's + # all this object will ever need, since it will just call read + # and get the bytes object resulting from it then compress that + # HTTPResponse + reader = cctx.stream_reader(reader) + + if file_obj: + file_obj.seek(0) + while chunk := reader.read(CHUNK_SIZE): + file_obj.write(chunk) + response.close() + response.release_conn() + return None + else: + res = BytesIO() + while chunk := reader.read(CHUNK_SIZE): + res.write(chunk) + response.close() + response.release_conn() + return res.getvalue() def delete_file(self, bucket_name: str, path: str) -> bool: try: # delete a file given a bucket name and a path self.minio_client.remove_object(bucket_name, path) return True - except MinioException: - raise + except S3Error as e: + if e.code == "NoSuchKey": + raise FileNotInStorageError( + f"File {path} does not exist in {bucket_name}" + ) + raise e def create_presigned_put(self, bucket: str, path: str, expires: int) -> str: expires_td = timedelta(seconds=expires) diff --git a/shared/storage/read.py b/shared/storage/read.py deleted file mode 100644 index ac70a99d3..000000000 --- a/shared/storage/read.py +++ /dev/null @@ -1,82 +0,0 @@ -from io import BytesIO -from typing import IO, cast - -import zstandard -from minio import Minio -from minio.error import MinioException, S3Error -from urllib3 import HTTPResponse - -from shared.storage.base import CHUNK_SIZE -from shared.storage.exceptions import FileNotInStorageError - - -def old_minio_read( - minio_client: Minio, - bucket_name: str, - path: str, - file_obj: IO[bytes] | None = None, -) -> bytes | None: - try: - res = minio_client.get_object(bucket_name, path) - if file_obj is None: - data = BytesIO() - for d in res.stream(CHUNK_SIZE): - data.write(d) - data.seek(0) - return data.getvalue() - else: - for d in res.stream(CHUNK_SIZE): - file_obj.write(d) - return None - except S3Error as e: - if e.code == "NoSuchKey": - raise FileNotInStorageError(f"File {path} does not exist in {bucket_name}") - raise e - except MinioException: - raise - - -def new_minio_read( - minio_client: Minio, - bucket_name: str, - path: str, - file_obj: IO[bytes] | None = None, - zstd_default: bool = False, -) -> bytes | None: - try: - response = cast( - HTTPResponse, - minio_client.get_object(bucket_name, path), - ) - except S3Error as e: - if e.code == "NoSuchKey": - raise FileNotInStorageError(f"File {path} does not exist in {bucket_name}") - raise e - reader = response - if ( - response.headers - and not zstd_default - and response.headers.get("Content-Encoding") == "zstd" - ): - # we have to manually decompress zstandard compressed data - cctx = zstandard.ZstdDecompressor() - # if the object passed to this has a read method then that's - # all this object will ever need, since it will just call read - # and get the bytes object resulting from it then compress that - # HTTPResponse - reader = cctx.stream_reader(cast(IO[bytes], response)) - - if file_obj: - file_obj.seek(0) - while chunk := reader.read(CHUNK_SIZE): - file_obj.write(chunk) - response.close() - response.release_conn() - return None - else: - res = BytesIO() - while chunk := reader.read(CHUNK_SIZE): - res.write(chunk) - response.close() - response.release_conn() - return res.getvalue() diff --git a/shared/storage/write.py b/shared/storage/write.py deleted file mode 100644 index ed396fcbc..000000000 --- a/shared/storage/write.py +++ /dev/null @@ -1,153 +0,0 @@ -import gzip -import os -import shutil -import tempfile -from io import BytesIO -from typing import IO, BinaryIO, Literal, Tuple, cast - -import sentry_sdk -import zstandard -from minio import Minio -from minio.error import MinioException -from minio.helpers import ObjectWriteResult - -from shared.metrics import Summary, set_summary -from shared.storage.base import PART_SIZE -from shared.storage.compression import GZipStreamReader - -MINIO_SIZE_SUMMARY = Summary( - "minio_compression_size", - "Size of the compressed data update to minio", - ["impl"], -) - - -def old_minio_write( - minio_client: Minio, - bucket_name: str, - path: str, - data: IO[bytes] | str | bytes, - reduced_redundancy: bool = False, - *, - is_already_gzipped: bool = False, # deprecated -) -> Literal[True]: - if isinstance(data, str): - data = data.encode() - - out: BinaryIO - if isinstance(data, bytes): - if not is_already_gzipped: - out = BytesIO() - with gzip.GzipFile(fileobj=out, mode="w", compresslevel=9) as gz: - gz.write(data) - else: - out = BytesIO(data) - - # get file size - out.seek(0, os.SEEK_END) - out_size = out.tell() - else: - # data is already a file-like object - if not is_already_gzipped: - _, filename = tempfile.mkstemp() - with gzip.open(filename, "wb") as f: - shutil.copyfileobj(data, f) - out = open(filename, "rb") - else: - out = data - - out_size = os.stat(filename).st_size - - try: - # reset pos for minio reading. - out.seek(0) - - headers = {"Content-Encoding": "gzip"} - if reduced_redundancy: - headers["x-amz-storage-class"] = "REDUCED_REDUNDANCY" - minio_client.put_object( - bucket_name, - path, - out, - out_size, - metadata=headers, - content_type="text/plain", - ) - - set_summary(MINIO_SIZE_SUMMARY, out_size, labels={"impl": "gzip"}) - - span = sentry_sdk.get_current_span() - if span: - span.set_data("size", out_size) - - return True - - except MinioException: - raise - - -def new_minio_write( - minio_client: Minio, - bucket_name: str, - path: str, - data: IO[bytes] | str | bytes, - reduced_redundancy: bool = False, - *, - is_already_gzipped: bool = False, # deprecated - is_compressed: bool = False, - compression_type: str | None = "zstd", -) -> ObjectWriteResult: - if isinstance(data, str): - data = BytesIO(data.encode()) - elif isinstance(data, (bytes, bytearray, memoryview)): - data = BytesIO(data) - - if is_already_gzipped: - is_compressed = True - compression_type = "gzip" - - if is_compressed: - result = data - else: - if compression_type == "zstd": - cctx = zstandard.ZstdCompressor() - result = cctx.stream_reader(data) - - elif compression_type == "gzip": - result = GZipStreamReader(data) - - else: - result = data - - headers: dict[str, str | list[str] | Tuple[str]] = {} - - if compression_type: - headers["Content-Encoding"] = compression_type - - if reduced_redundancy: - headers["x-amz-storage-class"] = "REDUCED_REDUNDANCY" - - # it's safe to do a BinaryIO cast here because we know that put_object only uses a function of the shape: - # read(self, size: int = -1, /) -> bytes - # GZipStreamReader implements this (we did it ourselves) - # ZstdCompressionReader implements read(): https://github.com/indygreg/python-zstandard/blob/12a80fac558820adf43e6f16206120685b9eb880/zstandard/__init__.pyi#L233C5-L233C49 - # BytesIO implements read(): https://docs.python.org/3/library/io.html#io.BufferedReader.read - # IO[bytes] implements read(): https://github.com/python/cpython/blob/3.13/Lib/typing.py#L3502 - - write_result = minio_client.put_object( - bucket_name, - path, - cast(BinaryIO, result), - -1, - metadata=headers, - content_type="text/plain", - part_size=PART_SIZE, - ) - - set_summary(MINIO_SIZE_SUMMARY, result.tell(), labels={"impl": compression_type}) - - span = sentry_sdk.get_current_span() - if span: - span.set_data("size", result.tell()) - - return write_result diff --git a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket.yaml b/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket.yaml deleted file mode 100644 index 2e6ff4cfb..000000000 --- a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket.yaml +++ /dev/null @@ -1,55 +0,0 @@ -interactions: -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU0Wg== - method: HEAD - uri: https://felipearchivetest.s3.amazonaws.com/ - response: - body: {string: ''} - headers: - Content-Type: [application/xml] - Date: ['Mon, 09 Sep 2019 17:04:55 GMT'] - Server: [AmazonS3] - Transfer-Encoding: [chunked] - x-amz-id-2: [7mlbc2RBIciSknzkNlRBH+a3sHRxnEt0/2fdZoUV0kOkBmW+c3097Tt8aO7OE9rBg0ITpyI+qQY=] - x-amz-request-id: [06A90B3469834F29] - status: {code: 404, message: Not Found} -- request: - body: null - headers: - Content-Length: ['0'] - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU1Wg== - method: PUT - uri: https://felipearchivetest.s3.amazonaws.com/ - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Mon, 09 Sep 2019 17:04:56 GMT'] - Location: [/felipearchivetest] - Server: [AmazonS3] - x-amz-id-2: [4plO7O7jIag/sA+FlbZq/i07QNwZ+JQccLW5WWb00GahebnN9yiKjPeiN06rXnRJuVgqQTcxuUI=] - x-amz-request-id: [435FEAFB21C318A1] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_already_exists.yaml b/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_already_exists.yaml deleted file mode 100644 index ba4a18e11..000000000 --- a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_already_exists.yaml +++ /dev/null @@ -1,29 +0,0 @@ -interactions: -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU3Wg== - method: HEAD - uri: https://felipearchivetest.s3.amazonaws.com/ - response: - body: {string: ''} - headers: - Content-Type: [application/xml] - Date: ['Mon, 09 Sep 2019 17:04:58 GMT'] - Server: [AmazonS3] - Transfer-Encoding: [chunked] - x-amz-bucket-region: [us-east-1] - x-amz-id-2: [Moal/oR/d4JS8t4dq8C1isFgmCtkOQweLfxd3eitkmGmTvmr43SWLjimn6Y1CfXheKaN8vbzrOo=] - x-amz-request-id: [2C3EA33FF25FA99C] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_already_exists_at_region.yaml b/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_already_exists_at_region.yaml deleted file mode 100644 index e12c9cf6b..000000000 --- a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_already_exists_at_region.yaml +++ /dev/null @@ -1,64 +0,0 @@ -interactions: -- request: - body: us-west-1 - headers: - Content-Length: ['153'] - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - YjAyNGMzODhkOWQwNjkwMzAwMDhhZmQ2ZTMwMjUyNGVkMTMwOGE5ZjNjMTA4YmZhNGU0ODFkNjUy - YjUzMTNjZg== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU3Wg== - method: PUT - uri: https://felipearchivetestw.s3.amazonaws.com/ - response: - body: {string: ' - - AuthorizationHeaderMalformedThe authorization - header is malformed; the region ''us-east-1'' is wrong; expecting ''us-west-1''us-west-15892CCC095B226BBZ5XlSqUzHOkVqE9w2ekJHAEz9xGj4gYusR+7eWv5zOiZ5+Pglwqd5X8NwcynkX0ZTIimVU3C2tA='} - headers: - Connection: [close] - Content-Type: [application/xml] - Date: ['Mon, 09 Sep 2019 17:04:56 GMT'] - Server: [AmazonS3] - Transfer-Encoding: [chunked] - x-amz-id-2: [Z5XlSqUzHOkVqE9w2ekJHAEz9xGj4gYusR+7eWv5zOiZ5+Pglwqd5X8NwcynkX0ZTIimVU3C2tA=] - x-amz-request-id: [5892CCC095B226BB] - status: {code: 400, message: Bad Request} -- request: - body: us-west-1 - headers: - Content-Length: ['153'] - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - YjAyNGMzODhkOWQwNjkwMzAwMDhhZmQ2ZTMwMjUyNGVkMTMwOGE5ZjNjMTA4YmZhNGU0ODFkNjUy - YjUzMTNjZg== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU3Wg== - method: PUT - uri: https://felipearchivetestw.s3.us-west-1.amazonaws.com/ - response: - body: {string: ' - - BucketAlreadyOwnedByYouYour previous request - to create the named bucket succeeded and you already own it.felipearchivetestw6AFE12359F12523D8fpurkK4kGXOP/B+wbP3iuMRV2blzSF+Rvdb2nmqEMcjNWw+wxDdT43LZ2eESG3FL794U0R3Bek='} - headers: - Content-Type: [application/xml] - Date: ['Mon, 09 Sep 2019 17:04:57 GMT'] - Server: [AmazonS3] - Transfer-Encoding: [chunked] - x-amz-bucket-region: [us-west-1] - x-amz-id-2: [8fpurkK4kGXOP/B+wbP3iuMRV2blzSF+Rvdb2nmqEMcjNWw+wxDdT43LZ2eESG3FL794U0R3Bek=] - x-amz-request-id: [6AFE12359F12523D] - status: {code: 409, message: Conflict} -version: 1 diff --git a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_at_region.yaml b/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_at_region.yaml deleted file mode 100644 index 6a43094fb..000000000 --- a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_create_bucket_at_region.yaml +++ /dev/null @@ -1,60 +0,0 @@ -interactions: -- request: - body: us-west-1 - headers: - Content-Length: ['153'] - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - YjAyNGMzODhkOWQwNjkwMzAwMDhhZmQ2ZTMwMjUyNGVkMTMwOGE5ZjNjMTA4YmZhNGU0ODFkNjUy - YjUzMTNjZg== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU1Wg== - method: PUT - uri: https://felipearchivetestw.s3.amazonaws.com/ - response: - body: {string: ' - - AuthorizationHeaderMalformedThe authorization - header is malformed; the region ''us-east-1'' is wrong; expecting ''us-west-1''us-west-113DABBC4E49AA14FHI27pXi1MhL3oR7RFR4/Vlw8Oqog85gzyO7AsooDo7pEwWp2m9kzbl2JN6klS6wFJhUiiOXN0ks='} - headers: - Connection: [close] - Content-Type: [application/xml] - Date: ['Mon, 09 Sep 2019 17:04:55 GMT'] - Server: [AmazonS3] - Transfer-Encoding: [chunked] - x-amz-id-2: [HI27pXi1MhL3oR7RFR4/Vlw8Oqog85gzyO7AsooDo7pEwWp2m9kzbl2JN6klS6wFJhUiiOXN0ks=] - x-amz-request-id: [13DABBC4E49AA14F] - status: {code: 400, message: Bad Request} -- request: - body: us-west-1 - headers: - Content-Length: ['153'] - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - YjAyNGMzODhkOWQwNjkwMzAwMDhhZmQ2ZTMwMjUyNGVkMTMwOGE5ZjNjMTA4YmZhNGU0ODFkNjUy - YjUzMTNjZg== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU2Wg== - method: PUT - uri: https://felipearchivetestw.s3.us-west-1.amazonaws.com/ - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Mon, 09 Sep 2019 17:04:57 GMT'] - Location: ['http://felipearchivetestw.s3.amazonaws.com/'] - Server: [AmazonS3] - x-amz-id-2: [Lgxj4oSuw8BVxYK6CqU0/wS0HgyuYXMgLJHR2XEDwJf3qzWpt4E/9DmGCR1b/6tJd9pcgLExImY=] - x-amz-request-id: [37ADBE5BB9F34B96] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_delete_file.yaml b/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_delete_file.yaml deleted file mode 100644 index d52116727..000000000 --- a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_delete_file.yaml +++ /dev/null @@ -1,95 +0,0 @@ -interactions: -- request: - body: !!python/object/new:_io.BytesIO - state: !!python/tuple - - !!binary | - bG9yZW0gaXBzdW0gZG9sb3IgdGVzdF93cml0ZV90aGVuX3JlYWRfZmlsZSDDoQ== - - 0 - - null - headers: - Content-Length: ['46'] - Content-MD5: - - !!binary | - TndJZjQ2RWlDY25mYW90OU4rR2FCUT09 - Expect: - - !!binary | - MTAwLWNvbnRpbnVl - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - VU5TSUdORUQtUEFZTE9BRA== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNTAwWg== - x-amz-storage-class: - - !!binary | - U1RBTkRBUkQ= - method: PUT - uri: https://felipearchivetest.s3.amazonaws.com/test_delete_file/result2 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Mon, 09 Sep 2019 17:05:01 GMT'] - ETag: ['"37021fe3a12209c9df6a8b7d37e19a05"'] - Server: [AmazonS3] - x-amz-id-2: [f3HmQPeNGnHL0QUzMZPhOLZLwOuCxIeE50muh/qRrpkpEefEVHwNimOONaP6ux24103+UjBygAU=] - x-amz-request-id: [FB2E436EAB571BFE] - status: {code: 200, message: OK} -- request: - body: null - headers: - Content-Length: ['0'] - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNTAwWg== - method: DELETE - uri: https://felipearchivetest.s3.amazonaws.com/test_delete_file/result2 - response: - body: {string: ''} - headers: - Date: ['Mon, 09 Sep 2019 17:05:01 GMT'] - Server: [AmazonS3] - x-amz-id-2: [7yqR0UjY4+oPbMILjTe+8o+sZBiPhaXr75SkVwk0k4V2xdwLLW7NXgTyXJT04q3xVkAbxDaQvkg=] - x-amz-request-id: [25E74A5AEFEA3400] - status: {code: 204, message: No Content} -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNTAwWg== - method: GET - uri: https://felipearchivetest.s3.amazonaws.com/test_delete_file/result2 - response: - body: {string: ' - - NoSuchKeyThe specified key does not exist.test_delete_file/result213300495DC7EB035hatVGxjOMwBe/oFuuJ5tjHJ5uG618f0suswk7DBYifbBGiEZccNfmAxXX8YhymyEiXxbzUQFZag='} - headers: - Content-Type: [application/xml] - Date: ['Mon, 09 Sep 2019 17:04:59 GMT'] - Server: [AmazonS3] - Transfer-Encoding: [chunked] - x-amz-id-2: [hatVGxjOMwBe/oFuuJ5tjHJ5uG618f0suswk7DBYifbBGiEZccNfmAxXX8YhymyEiXxbzUQFZag=] - x-amz-request-id: [13300495DC7EB035] - status: {code: 404, message: Not Found} -version: 1 diff --git a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_file.yaml b/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_file.yaml deleted file mode 100644 index a20711e24..000000000 --- a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_file.yaml +++ /dev/null @@ -1,71 +0,0 @@ -interactions: -- request: - body: !!python/object/new:_io.BytesIO - state: !!python/tuple - - !!binary | - bG9yZW0gaXBzdW0gZG9sb3IgdGVzdF93cml0ZV90aGVuX3JlYWRfZmlsZSDDoQ== - - 0 - - null - headers: - Content-Length: ['46'] - Content-MD5: - - !!binary | - TndJZjQ2RWlDY25mYW90OU4rR2FCUT09 - Expect: - - !!binary | - MTAwLWNvbnRpbnVl - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - VU5TSUdORUQtUEFZTE9BRA== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU4Wg== - x-amz-storage-class: - - !!binary | - U1RBTkRBUkQ= - method: PUT - uri: https://felipearchivetest.s3.amazonaws.com/test_write_then_read_file/result - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Mon, 09 Sep 2019 17:04:59 GMT'] - ETag: ['"37021fe3a12209c9df6a8b7d37e19a05"'] - Server: [AmazonS3] - x-amz-id-2: [pRFYYPtGhmYDy/uD4KQBh1Jp5K0Kv37kQPg8VUHxqdXqI8ZC2i3+OrSOEE8kJ+SILExXlH5g7Fo=] - x-amz-request-id: [122F8E5B91BDA25B] - status: {code: 200, message: OK} -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - NA== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAxOTA5MDlUMTcwNDU4Wg== - method: GET - uri: https://felipearchivetest.s3.amazonaws.com/test_write_then_read_file/result - response: - body: {string: "lorem ipsum dolor test_write_then_read_file \xE1"} - headers: - Accept-Ranges: [bytes] - Content-Length: ['46'] - Content-Type: [binary/octet-stream] - Date: ['Mon, 09 Sep 2019 17:04:59 GMT'] - ETag: ['"37021fe3a12209c9df6a8b7d37e19a05"'] - Last-Modified: ['Mon, 09 Sep 2019 17:04:59 GMT'] - Server: [AmazonS3] - x-amz-id-2: [x9PyNiORjsZvpPSYD/cKW71vznNT94+iHc9h61Lq0xtqIoZETPjQ7eKoyZXNHiyriweaF4Va6Fg=] - x-amz-request-id: [751529C7DB8043BA] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_gzipped_file.yaml b/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_gzipped_file.yaml deleted file mode 100644 index 6f3950491..000000000 --- a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_gzipped_file.yaml +++ /dev/null @@ -1,96 +0,0 @@ -interactions: -- request: - body: !!python/object/new:_io.BytesIO - state: !!python/tuple - - !!binary | - H4sIAFzRPF4C/wXBgQmAQAgF0FXc7BP46wQvxTOCtmmWFus9j+IUy3VN0fAoaa7GXdZED54oborj - sUwqdnPK9/4qCE07NgAAAA== - - 0 - - null - headers: - Content-Length: - - '73' - Content-MD5: - - !!binary | - Sk84anBqRy84UEo3dUNEY2NrUmhxUT09 - Expect: - - !!binary | - MTAwLWNvbnRpbnVl - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - VU5TSUdORUQtUEFZTE9BRA== - X-Amz-Date: - - !!binary | - MjAyMDAyMDdUMDI1NDIwWg== - x-amz-storage-class: - - !!binary | - U1RBTkRBUkQ= - method: PUT - uri: https://felipearchivetest.s3.amazonaws.com/test_write_then_read_gzipped_file/result - response: - body: - string: '' - headers: - Content-Length: - - '0' - Date: - - Fri, 07 Feb 2020 02:54:22 GMT - ETag: - - '"24ef23a631bff0f27bb820dc724461a9"' - Server: - - AmazonS3 - x-amz-id-2: - - p7oPm2+bd6GaUxKZPrP4v95a7b2dXMiiO7qFgM2P90gTNcDshqh+xWWVK5eYyE1oA502s3CVvAM= - x-amz-request-id: - - FEE0D9CB67D14C7B - status: - code: 200 - message: OK -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAyMDAyMDdUMDI1NDIxWg== - method: GET - uri: https://felipearchivetest.s3.amazonaws.com/test_write_then_read_gzipped_file/result - response: - body: - string: !!binary | - H4sIAFzRPF4C/wXBgQmAQAgF0FXc7BP46wQvxTOCtmmWFus9j+IUy3VN0fAoaa7GXdZED54oborj - sUwqdnPK9/4qCE07NgAAAA== - headers: - Accept-Ranges: - - bytes - Content-Length: - - '73' - Content-Type: - - binary/octet-stream - Date: - - Fri, 07 Feb 2020 02:54:22 GMT - ETag: - - '"24ef23a631bff0f27bb820dc724461a9"' - Last-Modified: - - Fri, 07 Feb 2020 02:54:22 GMT - Server: - - AmazonS3 - x-amz-id-2: - - C4+OB6AaxSLe//9ESzrHbizdQvR7V683yxLPnb1LO8YRD58r7mDXj48w1dBevd8E6dMI4E99YxM= - x-amz-request-id: - - 1D8B9486B4FF75FE - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_reduced_redundancy_file.yaml b/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_reduced_redundancy_file.yaml deleted file mode 100644 index d15e6c600..000000000 --- a/tests/unit/storage/cassetes/test_aws/TestAWSStorageService/test_write_then_read_reduced_redundancy_file.yaml +++ /dev/null @@ -1,73 +0,0 @@ -interactions: -- request: - body: !!python/object/new:_io.BytesIO - state: !!python/tuple - - !!binary | - bG9yZW0gaXBzdW0gZG9sb3IgdGVzdF93cml0ZV90aGVuX3JlYWRfZmlsZSDDoQ== - - 0 - - null - headers: - Content-Length: ['46'] - Content-MD5: - - !!binary | - TndJZjQ2RWlDY25mYW90OU4rR2FCUT09 - Expect: - - !!binary | - MTAwLWNvbnRpbnVl - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - MA== - X-Amz-Content-SHA256: - - !!binary | - VU5TSUdORUQtUEFZTE9BRA== - X-Amz-Date: - - !!binary | - MjAxOTA5MTBUMjI1NjA3Wg== - x-amz-storage-class: - - !!binary | - UkVEVUNFRF9SRURVTkRBTkNZ - method: PUT - uri: https://felipearchivetest.s3.amazonaws.com/test_write_then_read_reduced_redundancy_file/result - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 10 Sep 2019 22:56:08 GMT'] - ETag: ['"37021fe3a12209c9df6a8b7d37e19a05"'] - Server: [AmazonS3] - x-amz-id-2: [uY01nKjtq3xi+newYvhD+AivRlXnv4lpUxvQzCgT7jjDIjR1jfnCi26aF5Y1aqoc7yDGAsQ1+P0=] - x-amz-request-id: [D8101DEC98E12EF6] - x-amz-storage-class: [REDUCED_REDUNDANCY] - status: {code: 200, message: OK} -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjQgRGFyd2luLzE4LjYuMCBCb3RvY29yZS8xLjEyLjIy - MA== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAxOTA5MTBUMjI1NjA4Wg== - method: GET - uri: https://felipearchivetest.s3.amazonaws.com/test_write_then_read_reduced_redundancy_file/result - response: - body: {string: "lorem ipsum dolor test_write_then_read_file \xE1"} - headers: - Accept-Ranges: [bytes] - Content-Length: ['46'] - Content-Type: [binary/octet-stream] - Date: ['Tue, 10 Sep 2019 22:56:09 GMT'] - ETag: ['"37021fe3a12209c9df6a8b7d37e19a05"'] - Last-Modified: ['Tue, 10 Sep 2019 22:56:08 GMT'] - Server: [AmazonS3] - x-amz-id-2: [oKVFkPSUYTZFs86EoOk8+Elt+XJwVgFnkb1+WOoMUcPho2k4Sh3BPeDiHx5opdGYzsCD8G18mf8=] - x-amz-request-id: [976807A37CFE6026] - x-amz-storage-class: [REDUCED_REDUNDANCY] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_create_bucket.yaml b/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_create_bucket.yaml deleted file mode 100644 index 27df7d22b..000000000 --- a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_create_bucket.yaml +++ /dev/null @@ -1,187 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM3MDYzLCAiZXhwIjogMTU4MTM0MDY2MywgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.TuL-MX8xPQ9NKe-f8ryZlqw1VlepyniFuleDew8zxqUb-D2YnDTy-80Jfo2x9wrP1cPXComw-B1GM-Co6Tzi7fOgHDyt5_sLRDmGfRXQD_9jDOX_LrsAsfRyCH7CAwxyFX5uGskmv8BvWXWa9kQdFGlAT4h88RTt-4mvRBC1ISTM1lQxOSrz58EKE6xouC575RbmzsoVDw-aiIJ4NfvbkQH8PAYpleu-Y_FovJFnQuq5RXsWZ3HWhagAYQSAq7-vEfdcwZCi9Mbrt8tiOBAj23gTvyFeUYCP11oNs9Ua1juVlcIBAakpl0YY0MyaQwFvb4EojtOBbIo6hbNeak3x_A&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3PyXKCMAAA0H/JWRxBwtIbtKSLSmVpJVyYAIFCHAgEZHH673X6/uDdAckyKkQy - tIw24AksRDG32fbAT/bNy0f5qNXnOHb0BjHGBBqwvLq3b9alUPgHNTZc3E37dOa7obckJi+YBRH+ - eifNBI+eH4Xnkc9rMNHyw7mWWkNMYuxs5IbF28urG1hFEWcQnU+XGlWI6qVXE7f8ZJbqS3mqYIif - pcsy5nquaGLumDpe8UIC+aetlMTBquzyLoprW1v9oimkag612peoNxrZ0IYKnMEG0JlXPRVJ9ejt - oWluwP81GRZOH2Gbkp724PcPnBM9JwoBAAA= - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:44 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: '{"name": "testingarchive20190210001"}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '37' - Content-Type: - - application/json - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: POST - uri: https://storage.googleapis.com/storage/v1/b?project=genuine-polymer-165712&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"id\": \"testingarchive20190210001\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\": \"2020-02-10T12:17:45.261Z\"\ - ,\n \"metageneration\": \"1\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n \"\ - enabled\": false\n }\n },\n \"location\": \"US\",\n \"locationType\": \"\ - multi-region\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '558' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:45 GMT - ETag: - - CAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UoPDk_FpracnOBf9D7pQfF3j5pOluC4A1PaYMukuDXjEezv6vo39Vw5iCGwcUr0v-9c3HE9RjdVPLuBRMsPZg8spA7w-Q - status: - code: 200 - message: OK -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAyMDAyMTBUMTIxNzQ1Wg== - method: HEAD - uri: https://testingarchive20190210001.s3.amazonaws.com/ - response: - body: - string: '' - headers: - Content-Type: - - application/xml - Date: - - Mon, 10 Feb 2020 12:17:45 GMT - Server: - - AmazonS3 - Transfer-Encoding: - - chunked - x-amz-id-2: - - yy69rQ7cD9yY7JP8EZbNdvdAxf13ZUfh18u9V8viUiCLhA5STjVKd+gvHho6vaMbq1adXfiOHJs= - x-amz-request-id: - - D4D655AE65FEAA14 - status: - code: 404 - message: Not Found -- request: - body: null - headers: - Content-Length: - - '0' - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAyMDAyMTBUMTIxNzQ2Wg== - method: PUT - uri: https://testingarchive20190210001.s3.amazonaws.com/ - response: - body: - string: '' - headers: - Content-Length: - - '0' - Date: - - Mon, 10 Feb 2020 12:17:47 GMT - Location: - - /testingarchive20190210001 - Server: - - AmazonS3 - x-amz-id-2: - - ypWZ59V9E8FdoWOPiu7V/X3wPOqlV3+Qpg3ZxicH5zHqE00yiURxvUwqkRmq6sgsqRGf8LdkFG4= - x-amz-request-id: - - 49A1DB27ABBBD376 - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_create_bucket_already_exists.yaml b/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_create_bucket_already_exists.yaml deleted file mode 100644 index b7ec619af..000000000 --- a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_create_bucket_already_exists.yaml +++ /dev/null @@ -1,104 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM3MDY2LCAiZXhwIjogMTU4MTM0MDY2NiwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.i2encXwHj99yyW_WdWPylP00-jn6keyikCsLY6EjDITIDr1goFeE6we6yPrVbIx13lWi_e8dv0adrBE_JDhIoPrNI0WAk4hCYyKdYNAkSCWS_FOR3LKlx2mUswLV9exJrh85goMGeWFwQhE13fzVB9ZzSW3VTifT1QtB-4dxSWtntwjzebF0tDN38E0dBTgnPdyjP4gJ1WumtNAuXeoLjekddu1hdAxSjIU50_cgAXtE8V99SwsEAe5-mvhLriWNHP0YZDm2R3CSbNsCY6K0moXOHd3kYNv9y_HfDsdIjKxtrEvrFn_JWmbeKRMqkFdS5N0bDqykcSxenCCCS8xAqg&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3P226CMAAA0H/pszMy0kH3BijIKPfBmC8NIeWq0FEuUrN/n9n5g/MAeVFQzsk0 - dLQH72DLX9G+2DvM1Zew6G1+Eq5A8tqoLdsoYlmCcaSgACvzcCBaan30ixOWZz+Ybf/Gb1UVIM94 - kaS104X+eRVTZSncdUU3+PDiG02SzWwJ40C5ev1Q+rZmpLzJMM4KSf0mh0Xz+sCM2VsSFpXu8KPl - zvaEraM99AGEqplDQ+RqK7mmF68k9RwcNV+1XZK4vQhpPdVenZ0rH/7coRwRsAP0zpqRctI8ezJE - aAf+r2TaGH2GdZqPdAS/f1CfLbYKAQAA - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:46 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: '{"name": "testingarchive20190210001"}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '37' - Content-Type: - - application/json - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: POST - uri: https://storage.googleapis.com/storage/v1/b?project=genuine-polymer-165712&prettyPrint=false - response: - body: - string: "{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\"\ - ,\n \"reason\": \"conflict\",\n \"message\": \"You already own this\ - \ bucket. Please select another name.\"\n }\n ],\n \"code\": 409,\n \"\ - message\": \"You already own this bucket. Please select another name.\"\n\ - \ }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Content-Length: - - '259' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:48 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpSiw1hOEezjiqOT3zI7H-E5nqOw1ZAF2JDz0FXfQ8g8NSMNOoK14v-hFr3mHCeJYJ3Fp-dtgRCoDOVocIpcR0l_nxrgg - status: - code: 409 - message: Conflict -version: 1 diff --git a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_delete_file_doesnt_exist.yaml b/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_delete_file_doesnt_exist.yaml deleted file mode 100644 index 6f8cffd92..000000000 --- a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_delete_file_doesnt_exist.yaml +++ /dev/null @@ -1,161 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM3MDgwLCAiZXhwIjogMTU4MTM0MDY4MCwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.UIvq1UDeMS-lbR1hsp7ImnVrkCm0iL58DlSn_TRhdopzHMYSD6hzCoK5kBqdyryJzoWbNG4vvjTN59SIu3RGalNjY6eOOm4ZFheUz0QTRoZDNbhRHixUWHtUG3hZ5UM-qSXYH9zodgUxlUwxXcN30PFdh7_82p0plpjEVQe7Kaol4s1rlx2lyj8tubdKw9arecu4n7_7iopB2d4wRtOtrDkqhczgdtHvd-RCBC1CkUva3Me2ohGr60Tp5VYoXzPOm2WMpkvNzClI6Vlvl6tMc7Lp9M8C1tFIqvLFeE6U0hlX2gW2fO29nYFpuuhdW_vk9G7hF0L-6Ai4wZX4u0dFPg&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3P226CMAAA0H/ps5gBQenehjAGDYoU2OZLw6XRyiyl5SKY/fvMzh+cByiqiipF - +rahHLyCuTDgulojETnjscpDR/f8li8t1Ftr31thPAaCkuCG6gZ7g5qKSC5nbwi3452RIirTLv85 - YidmOblfm/Ly1jBZa4gTb8re49I+JKwPTfjB2V43zEmnV+QoHnLDXsQpEImTvGwkzqCg53j+1AZU - pL7M6nyrBu65uOwbP6k6uHG/OswbXVs4znW7W07WNCQoig+7ZOfefBT0il/Sb7AC9C6YpIqwZ8+0 - IFyB/yvpZ0GfYYcWkkrw+weQnV8fCgEAAA== - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:18:00 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:18:01 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:18:01 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UoMniHFA_3Inc1p25MMh4U79Xv_uexK5YpxfI42Im_uz1hASuxCq0161ILvr_pNnXiXnjzy1Z41IFyXTBWLMKTR8sWdew - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_delete_file_doesnt_exist%2Fresult.txt?prettyPrint=false - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object:\ - \ testingarchive20190210001/test_delete_file_doesnt_exist/result.txt\",\n\ - \ \"errors\": [\n {\n \"message\": \"No such object: testingarchive20190210001/test_delete_file_doesnt_exist/result.txt\"\ - ,\n \"domain\": \"global\",\n \"reason\": \"notFound\"\n \ - \ }\n ]\n }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '339' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:18:01 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UqZ5D7DZdZ_l5obWPmdLLgtzzIA3r1TpA5kKy8ugIUyDA-TYfSzVw7-hS6YBwHP3NV3mpNMtAyhxvFtryMoIsWnLYWEgg - status: - code: 404 - message: Not Found -version: 1 diff --git a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_exist_on_first_but_not_exists_on_second.yaml b/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_exist_on_first_but_not_exists_on_second.yaml deleted file mode 100644 index 34d185039..000000000 --- a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_exist_on_first_but_not_exists_on_second.yaml +++ /dev/null @@ -1,335 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM3MDc2LCAiZXhwIjogMTU4MTM0MDY3NiwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.Sf6bmzIl6Sr4nxm2Zmj6PzQ9xoBmrpA5u2ApmzEDFAc8H1ie28M69SdTjjpj67Wcao_sdkiCTat-wSlvbZe2M1OYaH4yp91wa-aZT_q6mN9w4Sg7uM6rp2LFg5Z1ig4mSWwMY8D7SJZjjBm6MADsu5eLgHIElCA5o5vFkU0oiuSKDzxp2hF1BSm50WiuI9tyf0ClbZsyATfPBMAeoZyyubO8Vlkz9018zYQhyPS3KWrKvACq6pPrS7feosW-EK20y9CHeq8UqozQC8UEBb0HHnGS65yf7mF3IwfrozLiNyLjeWrDILL9fRAJYj8G0z_3h3KWiKVqw9UrRufQeCO9fw&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3Py3ZDQAAA0H+ZdeQUEXRHqEk8YjyCbBxhhGg9xjRIT/+9Tj/gLu4PyPIcj2NK - uwa34B0sGSdv863Z2+oTYYWIgXNIVIsx2Ujc2+Q6lfG+Cc2AxtVginkT8prwrczMIpXSwNMDkqdM - f0Ad716QNy2f86sIhfBNFsQZ5R/FKeyZXZgVhkanQb9FrfWMtXQs/WvnUK+9E+qo+tlIi+PEnEve - PdoEJSh6RfCeGEuRad3D0GvlwmEJ6u7sGrC7VKybdvArgN5qPdn5ZALIlic63AqwAXjua4LHtF57 - vCDLG/B/TenS4zWs4oxgAn7/AJl5Pl8KAQAA - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:57 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:57 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:17:57 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UqOSZa9MNi4iKVN8bJbBjLXk-hk-qx-hoKuRoPUjnBRcZzMIJxYaYPIaLs-PPKTOcAF924vLKtiwBKXBHEUKf17gKxPEQ - status: - code: 200 - message: OK -- request: - body: "--===============5585409590854332465==\r\ncontent-type: application/json;\ - \ charset=UTF-8\r\n\r\n{\"name\": \"test_read_file_does_exist_on_first_but_not_exists_on_second/does_exist_on_first_but_not_exists_on_second.txt\"\ - }\r\n--===============5585409590854332465==\r\ncontent-type: text/plain\r\n\r\ - \nsome_different_data\r\n--===============5585409590854332465==--" - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '340' - User-Agent: - - python-requests/2.22.0 - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01NTg1NDA5NTkwODU0 - MzMyNDY1PT0i - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive20190210001/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive20190210001/test_read_file_does_exist_on_first_but_not_exists_on_second/does_exist_on_first_but_not_exists_on_second.txt/1581337077545464\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_read_file_does_exist_on_first_but_not_exists_on_second%2Fdoes_exist_on_first_but_not_exists_on_second.txt\"\ - ,\n \"name\": \"test_read_file_does_exist_on_first_but_not_exists_on_second/does_exist_on_first_but_not_exists_on_second.txt\"\ - ,\n \"bucket\": \"testingarchive20190210001\",\n \"generation\": \"1581337077545464\"\ - ,\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n \"timeCreated\"\ - : \"2020-02-10T12:17:57.545Z\",\n \"updated\": \"2020-02-10T12:17:57.545Z\"\ - ,\n \"storageClass\": \"STANDARD\",\n \"timeStorageClassUpdated\": \"2020-02-10T12:17:57.545Z\"\ - ,\n \"size\": \"19\",\n \"md5Hash\": \"A94boGwjJexuZLZmMberHQ==\",\n \"mediaLink\"\ - : \"https://storage.googleapis.com/download/storage/v1/b/testingarchive20190210001/o/test_read_file_does_exist_on_first_but_not_exists_on_second%2Fdoes_exist_on_first_but_not_exists_on_second.txt?generation=1581337077545464&alt=media\"\ - ,\n \"crc32c\": \"4mcrRA==\",\n \"etag\": \"CPjzm9b7xucCEAE=\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1156' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:57 GMT - ETag: - - CPjzm9b7xucCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UorxjcceBzqo8EZ0LfeYwShFnYJTOKL_iq8pcmrxWpE2arz6bqA77CYC-vxxwI5MpOpGohTLnQXth1lfEc4pOBYvAh3Og - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:57 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:17:57 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Uq4cxuFgL67nhLwBlg96gJLlLb6tIvz5y8OuxfQWHHmDqJd7WI7GC2JulBUESfIOwu3qexlHfzuTNjYwihXYUpMIagNag - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_read_file_does_exist_on_first_but_not_exists_on_second%2Fdoes_exist_on_first_but_not_exists_on_second.txt?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive20190210001/test_read_file_does_exist_on_first_but_not_exists_on_second/does_exist_on_first_but_not_exists_on_second.txt/1581337077545464\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_read_file_does_exist_on_first_but_not_exists_on_second%2Fdoes_exist_on_first_but_not_exists_on_second.txt\"\ - ,\n \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive20190210001/o/test_read_file_does_exist_on_first_but_not_exists_on_second%2Fdoes_exist_on_first_but_not_exists_on_second.txt?generation=1581337077545464&alt=media\"\ - ,\n \"name\": \"test_read_file_does_exist_on_first_but_not_exists_on_second/does_exist_on_first_but_not_exists_on_second.txt\"\ - ,\n \"bucket\": \"testingarchive20190210001\",\n \"generation\": \"1581337077545464\"\ - ,\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n \"\ - storageClass\": \"STANDARD\",\n \"size\": \"19\",\n \"md5Hash\": \"A94boGwjJexuZLZmMberHQ==\"\ - ,\n \"crc32c\": \"4mcrRA==\",\n \"etag\": \"CPjzm9b7xucCEAE=\",\n \"timeCreated\"\ - : \"2020-02-10T12:17:57.545Z\",\n \"updated\": \"2020-02-10T12:17:57.545Z\"\ - ,\n \"timeStorageClassUpdated\": \"2020-02-10T12:17:57.545Z\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1173' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:57 GMT - ETag: - - CPjzm9b7xucCEAE= - Expires: - - Mon, 10 Feb 2020 12:17:57 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UqHaWNdo7TefGRLsrM5YFjfKxlQPGaDanxn7ii64IjxTbMJ2HflKlmd-gqdyoO_LOwEPwbgRLIJRpNKYQOBwdVBC-crbQ - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Connection: - - keep-alive - User-Agent: - - python-requests/2.22.0 - accept-encoding: - - gzip - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/testingarchive20190210001/o/test_read_file_does_exist_on_first_but_not_exists_on_second%2Fdoes_exist_on_first_but_not_exists_on_second.txt?generation=1581337077545464&alt=media - response: - body: - string: some_different_data - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '19' - Content-Type: - - text/plain - Date: - - Mon, 10 Feb 2020 12:17:58 GMT - ETag: - - CPjzm9b7xucCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UrwZusAxJR7jWp3sCp_HNQXmWMfviLVDZ2OkbpiFGUIHAZvqt1ssQK65uzDiqKD4m0UuJosUiqxt0VfXn1gHAyQC_9Njw - X-Goog-Generation: - - '1581337077545464' - X-Goog-Hash: - - crc32c=4mcrRA==,md5=A94boGwjJexuZLZmMberHQ== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_not_exist.yaml b/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_not_exist.yaml deleted file mode 100644 index 981510bcc..000000000 --- a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_not_exist.yaml +++ /dev/null @@ -1,196 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM3MDczLCAiZXhwIjogMTU4MTM0MDY3MywgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.J6G72i_oqPAKcjvX_kqd8ixz4tkIwWdOubjkDwTR_hDUEgQS0vOqx3xsKJ4V4xrfCWvy0vdGyD2iqNXh3osUpN1QSIyXHbK6gldTD34blmwB25LKkObJPJd8n485cwh8vvnmSYV0DTi5FwnolQrwWtNfw3na40G5WQ5MJs504lS1nHj0GxLtUutYTRfbRfQUDYOg0ggbm5uxdG8ag_a-LGFtCONtylDLE1AwvY-JFiq7bvUOBgYy5D3naRofcVs3_OL203tuSWL4TO984tUfrihKHk0cZAySZ0jaJhNo6vhF97dJU90SBV1-F8ngAqck-emx8KfMU9YKKgbQD7fagg&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3PyVKDMAAA0H/JuXSAIIs3gSmtoC07cslAiMBgw5Kw6fjvdnx/8H5AgTFhDPG+ - IxQ8g72QjSM+usObufiV8nqmrb2yWg7ubcSbj92ImxMvxrRP5xR+zci2Q3dwVfgS8rmF4qiRs57H - 3xCjTtwEU5xHgdzDMQukxKc8/bSzja63hDkcSswTLErLdtFUw6okLVFmi7ybS4CaLrO1tCeq4i96 - zhSc1Z51zRWE4wsizGmoJKTStdbkMtpWXpeJfFrgJfYdoxeqcUy8W6TPlYvBAZBtaCfCUPvowSfD - OID/K+L7QB5hkxQTmcDvH1ksAOAKAQAA - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:53 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:54 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:17:54 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpoMFsry2_z9ojAJQ1o9m_nnaOTDYRzCw_bWJK6wMrYkzEYG_rC3k3yULVacKIjrVEpadq7OEHYaq9DlzalnHOkJiU_sg - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_read_file_does_not_exist%2Fdoes_not_exist.txt?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object:\ - \ testingarchive20190210001/test_read_file_does_not_exist/does_not_exist.txt\"\ - ,\n \"errors\": [\n {\n \"message\": \"No such object: testingarchive20190210001/test_read_file_does_not_exist/does_not_exist.txt\"\ - ,\n \"domain\": \"global\",\n \"reason\": \"notFound\"\n \ - \ }\n ]\n }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '355' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:54 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpPuoR0fNj1DsbnR-YxM1LnhWA1UOMAwAeDE8h7mIr_N6SpHB7JBCE0bcr6sjSiVIQ0MDhRsh0a4xqqyhfuLLtanV9L5Q - status: - code: 404 - message: Not Found -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAyMDAyMTBUMTIxNzU0Wg== - method: GET - uri: https://testingarchive20190210001.s3.amazonaws.com/test_read_file_does_not_exist/does_not_exist.txt - response: - body: - string: ' - - NoSuchKeyThe specified key does not exist.test_read_file_does_not_exist/does_not_exist.txt4646B0471B7D9328rZ1ZgfTzhcwxI3muXu/DUY0gofNRcdIgAZzJmebiccLVZmiBAqYQOHfdlmj3DK3rrtfA1exsqgU=' - headers: - Content-Type: - - application/xml - Date: - - Mon, 10 Feb 2020 12:17:55 GMT - Server: - - AmazonS3 - Transfer-Encoding: - - chunked - x-amz-id-2: - - rZ1ZgfTzhcwxI3muXu/DUY0gofNRcdIgAZzJmebiccLVZmiBAqYQOHfdlmj3DK3rrtfA1exsqgU= - x-amz-request-id: - - 4646B0471B7D9328 - status: - code: 404 - message: Not Found -version: 1 diff --git a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_not_exist_on_first_but_exists_on_second.yaml b/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_not_exist_on_first_but_exists_on_second.yaml deleted file mode 100644 index 0841547c9..000000000 --- a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_read_file_does_not_exist_on_first_but_exists_on_second.yaml +++ /dev/null @@ -1,250 +0,0 @@ -interactions: -- request: - body: !!python/object/new:_io.BytesIO - state: !!python/tuple - - !!binary | - c29tZV9kYXRhX292ZXJfdGhlcmU= - - 0 - - null - headers: - Content-Length: - - '20' - Content-MD5: - - !!binary | - WjNOdm50aHM0dm9wQURjcW9XUTkyQT09 - Expect: - - !!binary | - MTAwLWNvbnRpbnVl - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - VU5TSUdORUQtUEFZTE9BRA== - X-Amz-Date: - - !!binary | - MjAyMDAyMTBUMTIxNzU1Wg== - x-amz-storage-class: - - !!binary | - U1RBTkRBUkQ= - method: PUT - uri: https://testingarchive20190210001.s3.amazonaws.com/test_read_file_does_not_exist_on_first_but_exists_on_second/does_not_exist_on_first_but_exists_on_second.txt - response: - body: - string: '' - headers: - Content-Length: - - '0' - Date: - - Mon, 10 Feb 2020 12:17:56 GMT - ETag: - - '"67736f9ed86ce2fa2900372aa1643dd8"' - Server: - - AmazonS3 - x-amz-id-2: - - XsY0Wiws1ULKBAIbfIu5ITr23YfyRiiW5Z6tF2dWPuohr+ctbpAIGWUn1Yw/un+37QH2G3kWCvA= - x-amz-request-id: - - 018173C75A846D93 - status: - code: 200 - message: OK -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM3MDc2LCAiZXhwIjogMTU4MTM0MDY3NiwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.Sf6bmzIl6Sr4nxm2Zmj6PzQ9xoBmrpA5u2ApmzEDFAc8H1ie28M69SdTjjpj67Wcao_sdkiCTat-wSlvbZe2M1OYaH4yp91wa-aZT_q6mN9w4Sg7uM6rp2LFg5Z1ig4mSWwMY8D7SJZjjBm6MADsu5eLgHIElCA5o5vFkU0oiuSKDzxp2hF1BSm50WiuI9tyf0ClbZsyATfPBMAeoZyyubO8Vlkz9018zYQhyPS3KWrKvACq6pPrS7feosW-EK20y9CHeq8UqozQC8UEBb0HHnGS65yf7mF3IwfrozLiNyLjeWrDILL9fRAJYj8G0z_3h3KWiKVqw9UrRufQeCO9fw&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3P3VaCMAAA4HfZtXoEBaI7Z4EwkECQxs3OHBNXIeNHAjq9e5ze4Pt+AGWMty3p - qk9+B89gpKq5YiskfdiHLEit2y7GEteq7K4obt788mQk5CGYEy238fKxt0fXONZcp7AXQ+659Fia - mYvd9bpwkCCG5pFLZ2Mlb/VXuzNTm4QUfriFtu/h+XtCxtMhNe7IiciAaSzsTZZXXaw7ocvS6hDs - 7D6/ZoGmnGsrFKrwEp+m0MisIsKoLOLtFylPNUWRP4kETjdktTNxfJe5fpHKC1gAPkjR8JaIubfR - THMB/q+kGyWfw5DThjfg9w9/kLm/CgEAAA== - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:56 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:56 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:17:56 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UrnkJjdyl4bzuU35pNOJwzppUVmz9Jn6n_NaQ-_8DyZf9BgMasoZvGG9A0_YWYIVLjOqn9PxNZDpOE_X0Zoz5hmQswr6A - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_read_file_does_not_exist_on_first_but_exists_on_second%2Fdoes_not_exist_on_first_but_exists_on_second.txt?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object:\ - \ testingarchive20190210001/test_read_file_does_not_exist_on_first_but_exists_on_second/does_not_exist_on_first_but_exists_on_second.txt\"\ - ,\n \"errors\": [\n {\n \"message\": \"No such object: testingarchive20190210001/test_read_file_does_not_exist_on_first_but_exists_on_second/does_not_exist_on_first_but_exists_on_second.txt\"\ - ,\n \"domain\": \"global\",\n \"reason\": \"notFound\"\n \ - \ }\n ]\n }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '475' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:56 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Up6rTE2wjTk85BPc98feQOfI_9lgofHcZT77l6l14w9vcI6YD63NwVkhXrop7426FQbm4zLl1856wU-dWTay3xC_6vtrg - status: - code: 404 - message: Not Found -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAyMDAyMTBUMTIxNzU2Wg== - method: GET - uri: https://testingarchive20190210001.s3.amazonaws.com/test_read_file_does_not_exist_on_first_but_exists_on_second/does_not_exist_on_first_but_exists_on_second.txt - response: - body: - string: some_data_over_there - headers: - Accept-Ranges: - - bytes - Content-Length: - - '20' - Content-Type: - - binary/octet-stream - Date: - - Mon, 10 Feb 2020 12:17:57 GMT - ETag: - - '"67736f9ed86ce2fa2900372aa1643dd8"' - Last-Modified: - - Mon, 10 Feb 2020 12:17:56 GMT - Server: - - AmazonS3 - x-amz-id-2: - - Zw050nupqkOAY4XblYeuIgZVW47bwFpBDT9Y1E/uYSrbJC07oAFqjfWPYee4qzhcq1U2r8Pr/2M= - x-amz-request-id: - - D59528D9A540D65D - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_write_then_delete_file.yaml b/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_write_then_delete_file.yaml deleted file mode 100644 index 462e079db..000000000 --- a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_write_then_delete_file.yaml +++ /dev/null @@ -1,445 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM3MDc4LCAiZXhwIjogMTU4MTM0MDY3OCwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.CcBqPJflDHg4ujCH07ec5duDsySap0zrbQ-hct2t_lSbkxAXa-A5ATukgd4rqBgO591WLNy8mY91rf3ySwRCHDWgJAsxHxSvnsADblw3zNL7UOwT3Eq0QucoXYw3NHoige_MPAZJLIszG5N96uwwBZsJgh2oHlyJ5QYeBHSqS1h8CdsDcyE9QbV6C7Qdni3ASQwhVfw7vB2lglhjszAEn4mmkc5dy6iQ80DNQehP9bCs-TmIRti1gUmrwscE0gH7ouG3mDpuJokWKl2kzhQFvyXFJuTNH5CAnX_I749SVtd7eEzBS6Ywa5_6jQ_6Iphmf6xr4IjgXc6hd78nXY1Z_Q&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3P226CMAAA0H/psxiEVWFvVBmXTgSJTH0hBEoKZRQpF8uyf5/Z+YPzA7I8J0Kk - A2ekBe9AZpq5zte4O6IpKk/QYbQIJsw/v1rWydLQN2Ua5QzVVd2HyHL7wcZUE2/OSG15etDckDtK - kDHG8bWZi/kwBbmmUDSgaQndniVxEJ1Nz03GqtHEErnNflOIhmMJI8inW4YlR97ZgdnIryRUEz9b - dg/4vLOjegu0D6Eqqh+3s2gvHsaVd7CIfcfxpWBC+ba2savTbly2QeiTuR73YAXIs6t6ItLq1dOh - aa7A/zUdZEdeYUSynvTg9w8vQBoECgEAAA== - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:58 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:58 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:17:58 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UoyvAQ_Shh1yhmtOqy-bywNEh0zjDVItB0MXLRoxsHrpMkdHTtgiPo7iRima37i4J5KcDsPGEBDR485vZsycnBQW6gzXA - status: - code: 200 - message: OK -- request: - body: "--===============4034966341872028433==\r\ncontent-type: application/json;\ - \ charset=UTF-8\r\n\r\n{\"name\": \"test_write_then_delete_file/result.txt\"\ - }\r\n--===============4034966341872028433==\r\ncontent-type: text/plain\r\n\r\ - \nlorem ipsum dolor test_write_then_read_file \xE1\r\n--===============4034966341872028433==--" - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '297' - User-Agent: - - python-requests/2.22.0 - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT00MDM0OTY2MzQxODcy - MDI4NDMzPT0i - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive20190210001/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive20190210001/test_write_then_delete_file/result.txt/1581337078885828\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_write_then_delete_file%2Fresult.txt\"\ - ,\n \"name\": \"test_write_then_delete_file/result.txt\",\n \"bucket\": \"\ - testingarchive20190210001\",\n \"generation\": \"1581337078885828\",\n \"\ - metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n \"timeCreated\"\ - : \"2020-02-10T12:17:58.885Z\",\n \"updated\": \"2020-02-10T12:17:58.885Z\"\ - ,\n \"storageClass\": \"STANDARD\",\n \"timeStorageClassUpdated\": \"2020-02-10T12:17:58.885Z\"\ - ,\n \"size\": \"46\",\n \"md5Hash\": \"NwIf46EiCcnfaot9N+GaBQ==\",\n \"mediaLink\"\ - : \"https://storage.googleapis.com/download/storage/v1/b/testingarchive20190210001/o/test_write_then_delete_file%2Fresult.txt?generation=1581337078885828&alt=media\"\ - ,\n \"crc32c\": \"fChI7w==\",\n \"etag\": \"CMTb7db7xucCEAE=\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '876' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:59 GMT - ETag: - - CMTb7db7xucCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpYNya2vjtMceZ-nL4VNmfJGlX4HnX6xM7xld4XM1zX5Eurtebkw8IQXpZWbCsYHEf9ZNJ8C9iKxJGSThkN-A8ghCGwlw - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:59 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:17:59 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Uoi0Fuz9E_MLaa8Oc_Lp20nNLNavQsN8DeGCrzpEWIzB7fxBs1S5ijUT8IQ90L_elOuBSBwWxiiT5sFBEH6sWZP0E4y6Q - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_write_then_delete_file%2Fresult.txt?prettyPrint=false - response: - body: - string: '' - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - application/json - Date: - - Mon, 10 Feb 2020 12:17:59 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UqiwI1cS52MSWcfBVGB34dsqR3KKMg85Ce6azcQr-_birjBcAPJLCakvSOFjKsDNr_6bA8JN0aoMg68ZCKCUELpDqCiXw - status: - code: 204 - message: No Content -- request: - body: null - headers: - Content-Length: - - '0' - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAyMDAyMTBUMTIxNzU5Wg== - method: DELETE - uri: https://testingarchive20190210001.s3.amazonaws.com/test_write_then_delete_file/result.txt - response: - body: - string: '' - headers: - Date: - - Mon, 10 Feb 2020 12:18:01 GMT - Server: - - AmazonS3 - x-amz-id-2: - - uNJezAu7GzYGrQ4Pt3Zj1odTYPCGFxXVBC2xUCWEMzOLYUF/vdayVWE4JV429kK7CZl4vkRWxjg= - x-amz-request-id: - - 077D01D1A786CEC9 - status: - code: 204 - message: No Content -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:18:00 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:18:00 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UqsvJSJE0j3pm5jZ4RPXdK07MHNYwmqDJZbXdt1LjPe_nrTwc99RNUxjd32pKicTpoTuNL3d1czMcIRuSwrmlTz9lbDcg - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_write_then_delete_file%2Fresult.txt?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object:\ - \ testingarchive20190210001/test_write_then_delete_file/result.txt\",\n \ - \ \"errors\": [\n {\n \"message\": \"No such object: testingarchive20190210001/test_write_then_delete_file/result.txt\"\ - ,\n \"domain\": \"global\",\n \"reason\": \"notFound\"\n \ - \ }\n ]\n }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '335' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:18:00 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UovQgQxHXBWNGwtj34AtRhG9ea4ZtvSHsFbsBI2Ym7sPfxcD_QLfV7XGsURme_y90lq0mGF50lLj5eASbfXd5gsnoy2Ag - status: - code: 404 - message: Not Found -- request: - body: null - headers: - User-Agent: - - !!binary | - Qm90bzMvMS45LjIxOCBQeXRob24vMy43LjYgRGFyd2luLzE4LjcuMCBCb3RvY29yZS8xLjEyLjI1 - Mw== - X-Amz-Content-SHA256: - - !!binary | - ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3 - ODUyYjg1NQ== - X-Amz-Date: - - !!binary | - MjAyMDAyMTBUMTIxODAwWg== - method: GET - uri: https://testingarchive20190210001.s3.amazonaws.com/test_write_then_delete_file/result.txt - response: - body: - string: ' - - NoSuchKeyThe specified key does not exist.test_write_then_delete_file/result.txt56AB0FD0731AD9BCYteu5WIMIc8yAUYcKcPfv73ybNwIA69r2S4z3GfklhPKhIpytA9OUMg+pTXuyqO83fkN4Ro2/8U=' - headers: - Content-Type: - - application/xml - Date: - - Mon, 10 Feb 2020 12:17:59 GMT - Server: - - AmazonS3 - Transfer-Encoding: - - chunked - x-amz-id-2: - - Yteu5WIMIc8yAUYcKcPfv73ybNwIA69r2S4z3GfklhPKhIpytA9OUMg+pTXuyqO83fkN4Ro2/8U= - x-amz-request-id: - - 56AB0FD0731AD9BC - status: - code: 404 - message: Not Found -version: 1 diff --git a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_write_then_read_file.yaml b/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_write_then_read_file.yaml deleted file mode 100644 index c518866c2..000000000 --- a/tests/unit/storage/cassetes/test_fallback/TestFallbackStorageService/test_write_then_read_file.yaml +++ /dev/null @@ -1,335 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM3MDY4LCAiZXhwIjogMTU4MTM0MDY2OCwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.bI_Ic1DgjxgurfKi8mZWIYJO7rgbWgU2G9e_wa8UaQLMHvJtRw9H91E7SSfBOBMB4txEk38klpRZN0B5OsQTzXZ6LHK_LQtPi2fpOkHfC5-1fh_jGCDuh9HHzL-oyrzqLYoDnWLhYzqwqa1PUYu5hEXpf2E_cT6qjBPxCvDv9-K18m8lRdiN0Xx-1bmpG5vbDGqjZ3ZsTlhsUk9S5B9Ad5n6OShgfla4j7ES34JBhV_O_ccyRKTCWHQWxiLBH5bPE0gNvtC1Xi1UIPR9pqVrz48cN0UDgU1Zi_l-cRMv84Vp7qkUwJhh0RNaWvyQoFJ_eklVXzknqTUjhMfWiIV3cw&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3P2XJDUAAA0H+5z5Gx3+obKqgSBCUvRrgSW699y/Tfm+n5g/MESZqiYYhHXKEf - 8A62hBaO6dFoTWl2sogn7aZDmiWTo9kQxiOhZJcox143PqZg9ZHSLbsOvY3UOa67V7abMtouMcmo - hF7biieNyu9nudJCmg8meQ+kUbU2GIk7G3H4OhgyAReJzhGMbg/4hblyEdesuDhvtlb77KzXKt6h - JXGNptbfgc3X57VEcA7DuapbbBSrkzNKsV7YT4oa8srHV/PmZ0vpelF+KqcCHABa26JHQ1y8egwn - CAfwf43HrUWvsISSHvXg9w+s649zCgEAAA== - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:48 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:48 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:17:48 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Up6v9Sn_jat7oJF4wsA6jkPMGl_W5rMvu7SeWb-_J0fhrLh6-shsoXxCTg1ZYy7Ppn8NeRQcuJhm225bIdSAWAEAWrOqw - status: - code: 200 - message: OK -- request: - body: "--===============1778739320509585993==\r\ncontent-type: application/json;\ - \ charset=UTF-8\r\n\r\n{\"name\": \"test_write_then_read_file/result\"}\r\n\ - --===============1778739320509585993==\r\ncontent-type: text/plain\r\n\r\nlorem\ - \ ipsum dolor test_write_then_read_file \xE1\r\n--===============1778739320509585993==--" - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '291' - User-Agent: - - python-requests/2.22.0 - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT0xNzc4NzM5MzIwNTA5 - NTg1OTkzPT0i - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive20190210001/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive20190210001/test_write_then_read_file/result/1581337069049392\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_write_then_read_file%2Fresult\"\ - ,\n \"name\": \"test_write_then_read_file/result\",\n \"bucket\": \"testingarchive20190210001\"\ - ,\n \"generation\": \"1581337069049392\",\n \"metageneration\": \"1\",\n \"\ - contentType\": \"text/plain\",\n \"timeCreated\": \"2020-02-10T12:17:49.049Z\"\ - ,\n \"updated\": \"2020-02-10T12:17:49.049Z\",\n \"storageClass\": \"STANDARD\"\ - ,\n \"timeStorageClassUpdated\": \"2020-02-10T12:17:49.049Z\",\n \"size\"\ - : \"46\",\n \"md5Hash\": \"NwIf46EiCcnfaot9N+GaBQ==\",\n \"mediaLink\": \"\ - https://storage.googleapis.com/download/storage/v1/b/testingarchive20190210001/o/test_write_then_read_file%2Fresult?generation=1581337069049392&alt=media\"\ - ,\n \"crc32c\": \"fChI7w==\",\n \"etag\": \"CLCsldL7xucCEAE=\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '852' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:49 GMT - ETag: - - CLCsldL7xucCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Upb-hTnbfD-KpUrNsM-_oML7WuAcLnVVVkH9dPrfFXbfPHkQR6ZKLMNxtffi7Afn-ooKRgMWCEhc48LAUjTEBoYPCUz9g - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001\"\ - ,\n \"id\": \"testingarchive20190210001\",\n \"name\": \"testingarchive20190210001\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n\ - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"\ - CAE=\",\n \"timeCreated\": \"2020-02-10T12:17:45.261Z\",\n \"updated\":\ - \ \"2020-02-10T12:17:45.261Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n\ - \ \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\ - \n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '586' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:49 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:17:49 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpSiZXPXCHnmP4qFfQ0iRa_Iez-ww5YZXvUyWizL3s_JOR5ab_2wKhT2H8GXiFv_PqMVBb-fq13X3z6HD4vV1mR6sHvfg - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_write_then_read_file%2Fresult?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive20190210001/test_write_then_read_file/result/1581337069049392\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive20190210001/o/test_write_then_read_file%2Fresult\"\ - ,\n \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive20190210001/o/test_write_then_read_file%2Fresult?generation=1581337069049392&alt=media\"\ - ,\n \"name\": \"test_write_then_read_file/result\",\n \"bucket\": \"testingarchive20190210001\"\ - ,\n \"generation\": \"1581337069049392\",\n \"metageneration\": \"1\",\n\ - \ \"contentType\": \"text/plain\",\n \"storageClass\": \"STANDARD\",\n \ - \ \"size\": \"46\",\n \"md5Hash\": \"NwIf46EiCcnfaot9N+GaBQ==\",\n \"crc32c\"\ - : \"fChI7w==\",\n \"etag\": \"CLCsldL7xucCEAE=\",\n \"timeCreated\": \"\ - 2020-02-10T12:17:49.049Z\",\n \"updated\": \"2020-02-10T12:17:49.049Z\",\n\ - \ \"timeStorageClassUpdated\": \"2020-02-10T12:17:49.049Z\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '869' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:17:49 GMT - ETag: - - CLCsldL7xucCEAE= - Expires: - - Mon, 10 Feb 2020 12:17:49 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpNaI22a4OXnDbyPJDHwUyPLwVA7TINLo-Ipvj9DUOR53iJmU0HoRMYa-nut5ZqjgAbwizd6Of0QaEUZeW_CMdr10_-Pg - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Connection: - - keep-alive - User-Agent: - - python-requests/2.22.0 - accept-encoding: - - gzip - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/testingarchive20190210001/o/test_write_then_read_file%2Fresult?generation=1581337069049392&alt=media - response: - body: - string: "lorem ipsum dolor test_write_then_read_file \xE1" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '46' - Content-Type: - - text/plain - Date: - - Mon, 10 Feb 2020 12:17:49 GMT - ETag: - - CLCsldL7xucCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Uo7KoYqKP2eXERiKCggfWmzQMGHHCE1WGMJ6yKTFtq6hkm-hbH7Nx5MvxddbeDPjolFMCVkIG9BR3JoNIiLxqdF6ueZ1g - X-Goog-Generation: - - '1581337069049392' - X-Goog-Hash: - - crc32c=fChI7w==,md5=NwIf46EiCcnfaot9N+GaBQ== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_create_bucket.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_create_bucket.yaml deleted file mode 100644 index 5256f7663..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_create_bucket.yaml +++ /dev/null @@ -1,115 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM2NzQ1LCAiZXhwIjogMTU4MTM0MDM0NSwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.aXDQX2wbYtmgcCs1z-46AdafwXxUWNpxQuNWjsKditdq895uKzE2AjGwfqj1FQlVS7dde5my3FeT-Wa3VdzTa6Hh7GCOg6jKv4friSWpdbBU5crU5C_3RYL5uD6y9YU6lKidX6utVkP7-Lh_nMF9agC_Z78h0aUkFB30JyVx2kb1JNeb8ny3YeBlNqjSSDT8iOzL87h2D25Hkka1G3O-PketHxA6g3-lhXvfjrIj6x2s_LwhQcB0IP8JsDhkE-bTU3jEHq3Shq1EAz4QEUcWyrDacEYFRntcREaEIN-4eYSdSozI4gJvrX8vSPPn1LB1ulWNTHCGhQ5RjY7u3mfomw&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3P3XZDMAAA4HfJddMzMsru/LZkVhm21o1DZBhDo1S2s3dfz743+H5ATimbpuw6 - tKwHT0Dksr6lWzwG5kIoF9E4qAZRpsc+K+0Vaq6+kw+QkYjh9Ga3Qg0FNlrz07IYPhcavtAuSz94 - LWMF1j15IEnTsT2aq5ed5sIhOaBZhB7JkRMmzmkdPXeCz1JXVugc+BAio4uZ9PZeuckXj1XPDPx4 - LqPEV09LVNvIGde4gqk2W1JRqvn33jpeqF0oGDtKUIc+ghZ8FcWNJjDXj0sENoCtY8PZlDX3HlJ0 - fQP+r9lVjOweNlnOGQe/f9wJ1kEKAQAA - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:25 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: '{"name": "testingarchive004"}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '29' - Content-Type: - - application/json - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: POST - uri: https://storage.googleapis.com/storage/v1/b?project=genuine-polymer-165712&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"id\": \"testingarchive004\",\n\ - \ \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004\"\ - ,\n \"projectNumber\": \"582817289294\",\n \"name\": \"testingarchive004\"\ - ,\n \"timeCreated\": \"2020-02-10T12:12:27.090Z\",\n \"updated\": \"2020-02-10T12:12:27.090Z\"\ - ,\n \"metageneration\": \"1\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\"\ - : {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": {\n \"\ - enabled\": false\n }\n },\n \"location\": \"US\",\n \"locationType\": \"\ - multi-region\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '534' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:27 GMT - ETag: - - CAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpkGJ-fo8wct6uU_VafI99ATQmuzNtqSKAxrnwRI_oTlj9BiMz81WDlw-2J7GaKxyuatV5znGwUoVlAVRzB0WrDQgrFSA - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_create_bucket_already_exists.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_create_bucket_already_exists.yaml deleted file mode 100644 index e3a44c4b2..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_create_bucket_already_exists.yaml +++ /dev/null @@ -1,104 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM2NzU3LCAiZXhwIjogMTU4MTM0MDM1NywgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.dozpboXpfbiXZ_rAssmbJ2ywjOf1iEtrCUVeNy-vw6CWh6aLcqaVYXb0K5_yTm1tFknC5YuPPZtLSWCHI7bUcvAhnsnUBK-GPdp-mOErMyZVqbJtj3QrA1DgsDH4jb87SggYF7ntfxjpSuQC_dIzXP8-OzfBPH2PkQyXrXnpGxypW6BYk-kKXGhwZcPwhPa32xhVYH7VPTtrjiZlDdEeXgKq1BOM2KGthAwld7fXjts2Fr9dH3ME7JeMbJYdgbPgMcJgUsF6vdShTsmPqtw4J9neVOEG63MwDVDtpK79DFbSrSLfxh_xOkAYXg-VQZDiVU1d0q9uUDjmkBgx6MRn_A&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3PyXKCMAAA0H/JWZ0CjYTeoC5UVBbRApcMS1CqQAhhi9N/r9P3B+8J4jQlbYt5 - fScV+ABTLGuLdGHRg9G7uSefpj7yxS2SnESkqMfjBibIiwO8b8JRGJC5lpKslMifi0O5Pr33+THX - +ynx7B++vaGs7rJTx8xV5uG3802/7qvibI3C3s0D+BgsSQkavdzsJiwjGOpliEybkrHlpr0rlmkX - cp/SLjqiLg+G9nEppk/96zuH6L6uV7xUG1V1RFf5wnJLLi8tdYAOZVvp2riXihkIzAAZacFIi4tX - T4GaNgP/V8wnSl5hg8SMMPD7BwrntAsKAQAA - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:37 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: '{"name": "testingarchive004"}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '29' - Content-Type: - - application/json - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: POST - uri: https://storage.googleapis.com/storage/v1/b?project=genuine-polymer-165712&prettyPrint=false - response: - body: - string: "{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\"\ - ,\n \"reason\": \"conflict\",\n \"message\": \"You already own this\ - \ bucket. Please select another name.\"\n }\n ],\n \"code\": 409,\n \"\ - message\": \"You already own this bucket. Please select another name.\"\n\ - \ }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Content-Length: - - '259' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:38 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UppVbm559bu5nEIfqP2KMMivGZmzA0LaX3dtYiWaP9LHAR2o16zCWhHdgvny-CA8H3eQiaa9GYAsqJg6Z1Hl01E8ZGzuA - status: - code: 409 - message: Conflict -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_delete_file_doesnt_exist.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_delete_file_doesnt_exist.yaml deleted file mode 100644 index dbc5a9253..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_delete_file_doesnt_exist.yaml +++ /dev/null @@ -1,108 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM2NzY4LCAiZXhwIjogMTU4MTM0MDM2OCwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.LNuUpmPm2L3xUlQ4I2ZvZcBnv8EHT53FLEGmcb_dMibDnhNNd-VJkHF-oCVKwgzouxF3phuKr4ZqpFNNETQL8k--wD7Mjt2B9RyihwJDNeC8bbO5zitkG1O5naRDXg2h6R9tRQ0r4LWNZxnp32lSEy7pdCKBvy5WG6mdnbNHNLIbweJbvtYkVSosx8aueYzqgKfnt_eSktoOQ1k8L79cmZnon8yHpDGMPo68bep7NsXfccfJ140rvSMjf2Ry3AzH9N-5eFWukWP0kqmOVm84D3cef-xu9XBTI1imA3VWFIePU7mEPV94vbkNo3WdOt4xYbt5sfsZ-ii25M8o5bc7Lw&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3PQXKCMAAAwL/kLA4tqKS3oghWigRRIZdMSAOKNEAIKnT69zrdH+wPoIzxriOq - vnIB3sBAX+GUTbfNp31DbDAPu9UeRWSff5SHPG9HyuUyOw/oRsQ8oarCDrx2L4usKep4u17ioHRU - tbyTQUvfA9pb+aI4DalShLmW9ijDLME2LEyMEMepd81nPNnOZRshkcEvO5j3PlYVjRzBvFCnJz12 - oVy5G2H0sQg2905bx0dIdjyNmBjLs7Z2j20V0u/M5yYOdUvYfm2gVBsNz4eeBBPAH81F8o5cnj1j - BuEE/F+JGhr+DNucSi7B7x8xTk7DCgEAAA== - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:49 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/testingarchive004/o/test_delete_file_doesnt_exist%2Fresult.txt?prettyPrint=false - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object:\ - \ testingarchive004/test_delete_file_doesnt_exist/result.txt\",\n \"errors\"\ - : [\n {\n \"message\": \"No such object: testingarchive004/test_delete_file_doesnt_exist/result.txt\"\ - ,\n \"domain\": \"global\",\n \"reason\": \"notFound\"\n \ - \ }\n ]\n }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '323' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:49 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Up4p8Qo23d1SsBn-jtaKJVDhtSm_zEbSrrkBCRB2_mtEhH0Hjh5EjF2yGJVgOY0RoU1WTS8_OAQCn8TGOpL8DEsop4NCw - status: - code: 404 - message: Not Found -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_manually_then_read_then_write_then_read_file.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_manually_then_read_then_write_then_read_file.yaml deleted file mode 100644 index c77d8d78c..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_manually_then_read_then_write_then_read_file.yaml +++ /dev/null @@ -1,502 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiYWVlMzMxYmEyNzQ2OTljZWNmNjMwNzgxMzdmNDNhODM0NGY0YWM4ZiJ9.eyJpYXQiOiAxNjcyNzc4MzgwLCAiZXhwIjogMTY3Mjc4MTk4MCwgImlzcyI6ICJsb2NhbHN0b3JhZ2V0ZXN0ZXJAZ2VudWluZS1wb2x5bWVyLTE2NTcxMi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsICJhdWQiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLCAic2NvcGUiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLmZ1bGxfY29udHJvbCBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF9vbmx5IGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5yZWFkX3dyaXRlIn0.3_UgRPNMSdiwkZs4qH-enPSZnNkNdWIBZK1hKdfqBBKY9B_ec8-GpDXzhox8UY79ZTZrlQpe2QhJPywBWdET7VTtjkrlV8_vAvhXg9WOX5Vh89XM1aLbVAR138CIqjm8IRecEegTlr-UDEJZwLd8ZplEjtJSVvUKtvRf9WXdem7xPBc7rr0HFih0xm8y0it4-bbFCuTaGxCWRQMskZE0LO3_jHY9JveJM6bd3o7s-d2Oobz6nvfxKSQIdEwjnsfbpGjx4PcXwb1o-Gca-1k36TlLnik3rV2Iy1WLUYwANdlWYqJD-7glekSclnViMXk8iMyMAWFXzQbOAjIXX2FMCQ&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '974' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - python-requests/2.26.0 - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/+3USXKCQBQA0Lv0WixsQSE7maIik0ozbCzAL7QIdAAHTOXusbLKIXyHeN8oyTLo - ukPflFCjDzQkWB5n45Rf7OcXdlaXRtHzZqI8AjtMdqGx/irkqxbNLXbe8EHvN8dPZ3DVuqtuunPK - fd7iqGDJOCwNraj99O6UpFzVx/VMEJ/5eiqwBawaEqfYYKdq0d8JtY+V5PBkp+MJ7NqNqD4dR6FC - bceeTqKr7e7z2IiIBZ6UNSG3oTCLAximq4zOzSIAqa9cdlK02CXdcxmXnMET3Vw+9l46w/dAVHGL - XY4wyM2Ld9sWEzCjq1ZrrjR+e3v7D40QPBhtoTvQ1wdTUZZH6C+HQz8weA2hQNJCi35+AcEDXSc7 - BAAA - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:39:40 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: "--===============8884885407156052639==\r\ncontent-type: application/json; - charset=UTF-8\r\n\r\n{\"name\": \"test_manually_then_read_then_write_then_read_file/result01\"}\r\n--===============8884885407156052639==\r\ncontent-type: - text/plain\r\n\r\nsome data around\r\n--===============8884885407156052639==--" - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '287' - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/c7722e0c-d652-429a-b8e2-742d994fc7d5 - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT04ODg0ODg1NDA3MTU2 - MDUyNjM5PT0i - x-upload-content-type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive02/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive02/test_manually_then_read_then_write_then_read_file/result01/1672778381223258\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?generation=1672778381223258&alt=media\",\n - \ \"name\": \"test_manually_then_read_then_write_then_read_file/result01\",\n - \ \"bucket\": \"testingarchive02\",\n \"generation\": \"1672778381223258\",\n - \ \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"16\",\n \"md5Hash\": \"92IESanFY7xh6KhusAtAxw==\",\n - \ \"crc32c\": \"+vcXTQ==\",\n \"etag\": \"CNrKzYmhrPwCEAE=\",\n \"timeCreated\": - \"2023-01-03T20:39:41.348Z\",\n \"updated\": \"2023-01-03T20:39:41.348Z\",\n - \ \"timeStorageClassUpdated\": \"2023-01-03T20:39:41.348Z\"\n}\n" - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '941' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:39:41 GMT - ETag: - - CNrKzYmhrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdshs1J1zq-bu4e_D1N7MsLTosLoOXYIG63rDzm4wrSHgbJIR9xh6FYGiUBIm4rIMOkZIg6xGZVS6jVeKa7jifnxOLT6AFTz - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/05d1d4fa-183f-4393-9f67-78d513a33fb2 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?prettyPrint=false&projection=noAcl - response: - body: - string: '{"kind":"storage#object","id":"testingarchive02/test_manually_then_read_then_write_then_read_file/result01/1672778381223258","selfLink":"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01","mediaLink":"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?generation=1672778381223258&alt=media","name":"test_manually_then_read_then_write_then_read_file/result01","bucket":"testingarchive02","generation":"1672778381223258","metageneration":"1","contentType":"text/plain","storageClass":"STANDARD","size":"16","md5Hash":"92IESanFY7xh6KhusAtAxw==","crc32c":"+vcXTQ==","etag":"CNrKzYmhrPwCEAE=","timeCreated":"2023-01-03T20:39:41.348Z","updated":"2023-01-03T20:39:41.348Z","timeStorageClassUpdated":"2023-01-03T20:39:41.348Z"}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '871' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:39:41 GMT - ETag: - - CNrKzYmhrPwCEAE= - Expires: - - Tue, 03 Jan 2023 20:39:41 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtN7EtOCPd191140Vk55ZJLTQ0WwHf01FizSQ6BXlkjaHyYDFZzTPBN93_Nemq9qdIYIHyCjVEKysZVXi62CN_7Qw - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/c688b104-8430-4dd6-8c0d-edff12c51438 - accept-encoding: - - gzip - content-type: - - application/json; charset=UTF-8 - x-upload-content-type: - - application/json; charset=UTF-8 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?alt=media&generation=1672778381223258 - response: - body: - string: some data around - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '16' - Content-Type: - - text/plain - Date: - - Tue, 03 Jan 2023 20:39:42 GMT - ETag: - - CNrKzYmhrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtKohBtlWeekMvkrZKehYtOspy7FoI6Q7KzYJIigQ4oq5NuGgd-bz0vZecFa-1Qj6hEA52Xug417Nbz_K55FY010FTUIBcX - X-Goog-Generation: - - '1672778381223258' - X-Goog-Hash: - - crc32c=+vcXTQ==,md5=92IESanFY7xh6KhusAtAxw== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - X-Goog-Stored-Content-Encoding: - - identity - X-Goog-Stored-Content-Length: - - '16' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/07e4f7f1-b253-4569-90f3-0a7affb3b0a8 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?generation=1672778381223258&prettyPrint=false&projection=noAcl - response: - body: - string: '{"kind":"storage#object","id":"testingarchive02/test_manually_then_read_then_write_then_read_file/result01/1672778381223258","selfLink":"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01","mediaLink":"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?generation=1672778381223258&alt=media","name":"test_manually_then_read_then_write_then_read_file/result01","bucket":"testingarchive02","generation":"1672778381223258","metageneration":"1","contentType":"text/plain","storageClass":"STANDARD","size":"16","md5Hash":"92IESanFY7xh6KhusAtAxw==","crc32c":"+vcXTQ==","etag":"CNrKzYmhrPwCEAE=","timeCreated":"2023-01-03T20:39:41.348Z","updated":"2023-01-03T20:39:41.348Z","timeStorageClassUpdated":"2023-01-03T20:39:41.348Z"}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '871' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:39:42 GMT - ETag: - - CNrKzYmhrPwCEAE= - Expires: - - Tue, 03 Jan 2023 20:39:42 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtn0QhPMF2ALuFozDnw6ppMnSlR3BO0gn4O7Ft1DolS5uCxYTxQ627muY_uGR9YMms4XMi17piSWKuGzYCUqnaQ - status: - code: 200 - message: OK -- request: - body: !!binary | - LS09PT09PT09PT09PT09PT0yNjg3NDI3NTk2NjkxNDkxNDM3PT0NCmNvbnRlbnQtdHlwZTogYXBw - bGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOA0KDQp7Im5hbWUiOiAidGVzdF9tYW51YWxseV90 - aGVuX3JlYWRfdGhlbl93cml0ZV90aGVuX3JlYWRfZmlsZS9yZXN1bHQwMSIsICJjb250ZW50RW5j - b2RpbmciOiAiZ3ppcCJ9DQotLT09PT09PT09PT09PT09PTI2ODc0Mjc1OTY2OTE0OTE0Mzc9PQ0K - Y29udGVudC10eXBlOiB0ZXh0L3BsYWluDQoNCh+LCACOkrRjAv/LyS9KzVXILCguzVVIyc/JL1Io - SS0uiS8vyixJjS/JSM2LL0pNTIlPy8xJVTi8EAAULvu4LgAAAA0KLS09PT09PT09PT09PT09PT0y - Njg3NDI3NTk2NjkxNDkxNDM3PT0tLQ== - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '364' - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/5b704593-5c4e-4ef5-90fc-a2d01f7b8010 - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT0yNjg3NDI3NTk2Njkx - NDkxNDM3PT0i - x-upload-content-type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive02/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive02/test_manually_then_read_then_write_then_read_file/result01/1672778382568451\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?generation=1672778382568451&alt=media\",\n - \ \"name\": \"test_manually_then_read_then_write_then_read_file/result01\",\n - \ \"bucket\": \"testingarchive02\",\n \"generation\": \"1672778382568451\",\n - \ \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"66\",\n \"md5Hash\": \"wTbaKCQJRKRv4r9z/SpMrA==\",\n - \ \"contentEncoding\": \"gzip\",\n \"crc32c\": \"lLnI8Q==\",\n \"etag\": - \"CIPYn4qhrPwCEAE=\",\n \"timeCreated\": \"2023-01-03T20:39:42.703Z\",\n - \ \"updated\": \"2023-01-03T20:39:42.703Z\",\n \"timeStorageClassUpdated\": - \"2023-01-03T20:39:42.703Z\"\n}\n" - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '970' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:39:42 GMT - ETag: - - CIPYn4qhrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdsUMkJzqbAsDZE5jHMKypGOASh4VNoAYlOofTgXEeLFWbsAFJ_bBl4O3kJ8wfYymAAM0UaBZMu7-xC-u7HygVqnRmS7hGY0 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/2ee98c8c-3616-41eb-9eb1-8672253ec587 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?prettyPrint=false&projection=noAcl - response: - body: - string: '{"kind":"storage#object","id":"testingarchive02/test_manually_then_read_then_write_then_read_file/result01/1672778382568451","selfLink":"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01","mediaLink":"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?generation=1672778382568451&alt=media","name":"test_manually_then_read_then_write_then_read_file/result01","bucket":"testingarchive02","generation":"1672778382568451","metageneration":"1","contentType":"text/plain","storageClass":"STANDARD","size":"66","md5Hash":"wTbaKCQJRKRv4r9z/SpMrA==","contentEncoding":"gzip","crc32c":"lLnI8Q==","etag":"CIPYn4qhrPwCEAE=","timeCreated":"2023-01-03T20:39:42.703Z","updated":"2023-01-03T20:39:42.703Z","timeStorageClassUpdated":"2023-01-03T20:39:42.703Z"}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '896' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:39:43 GMT - ETag: - - CIPYn4qhrPwCEAE= - Expires: - - Tue, 03 Jan 2023 20:39:43 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycds2E1_l3FHGw3l-Cg7eup9QuHXCI1EhIf6f_t30-1Kou9Rd9gzl12yv4Qy03zxNrr-o6OXpEQdsbodWbLNYcay--w - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/680e0482-0fce-4427-ba52-ef7788a4f879 - accept-encoding: - - gzip - content-type: - - application/json; charset=UTF-8 - x-upload-content-type: - - application/json; charset=UTF-8 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?alt=media&generation=1672778382568451 - response: - body: - string: !!binary | - H4sIAI6StGMC/8vJL0rNVcgsKC7NVUjJz8kvUihJLS6JLy/KLEmNL8lIzYsvSk1MiU/LzElVOLwQ - ABQu+7guAAAA - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Encoding: - - gzip - Content-Type: - - text/plain - Date: - - Tue, 03 Jan 2023 20:39:43 GMT - ETag: - - CIPYn4qhrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Accept-Encoding - X-GUploader-UploadID: - - ADPycds1ndgPEZYYXGqht2hOHW7ZRG3aYDIvoVGfh_BmLJErefzy_q4Ya1ABuE08yiQg1610MHJpqpBe1seA-DUvxag0Fw - X-Goog-Generation: - - '1672778382568451' - X-Goog-Hash: - - crc32c=lLnI8Q==,md5=wTbaKCQJRKRv4r9z/SpMrA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - X-Goog-Stored-Content-Encoding: - - gzip - X-Goog-Stored-Content-Length: - - '66' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/20fc686f-bddb-48c9-9343-390827b6b35d - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?prettyPrint=false&projection=noAcl - response: - body: - string: '{"kind":"storage#object","id":"testingarchive02/test_manually_then_read_then_write_then_read_file/result01/1672778382568451","selfLink":"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01","mediaLink":"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_manually_then_read_then_write_then_read_file%2Fresult01?generation=1672778382568451&alt=media","name":"test_manually_then_read_then_write_then_read_file/result01","bucket":"testingarchive02","generation":"1672778382568451","metageneration":"1","contentType":"text/plain","storageClass":"STANDARD","size":"66","md5Hash":"wTbaKCQJRKRv4r9z/SpMrA==","contentEncoding":"gzip","crc32c":"lLnI8Q==","etag":"CIPYn4qhrPwCEAE=","timeCreated":"2023-01-03T20:39:42.703Z","updated":"2023-01-03T20:39:42.703Z","timeStorageClassUpdated":"2023-01-03T20:39:42.703Z"}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '896' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:39:44 GMT - ETag: - - CIPYn4qhrPwCEAE= - Expires: - - Tue, 03 Jan 2023 20:39:44 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtGPyy4U21cPxopIb1lU24_V6YAy89nKkZ1aisXnvePZErcV5_sLCiKn9h-AV83OPJBWUwEnaeTj2uGRB81iYiRLg - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_read_file_application_gzip.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_read_file_application_gzip.yaml deleted file mode 100644 index 8d3757997..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_read_file_application_gzip.yaml +++ /dev/null @@ -1,380 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM2NzY1LCAiZXhwIjogMTU4MTM0MDM2NSwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.GD0dPqt4eLMKPV-nbriizYB41Mdq_pR5RRKnr5qV8ECc9O_bQKbtQFZSdGp8JhXvAukhC7z8WXis7doXYCJ1lBDk3qPBOpOVXfqwA1pAeO91cxDbE2FUgrIk6Dju_IP2uwRoGdap2s4RAYWBix21srABUz8mL6E2ZxPOVS_25zDoYjuLBGkzNlvDkX16TgyMA1zPQj9kKKaUvGmA4kP4V6S1Q2RXgGixnQC3Ir4PZSqU21ymv4ytP8pyB3fG1nL2GF9FQ-ZkxGKbTL750N0DKQ8OpFitnemiWmIgCtCyyCbL4bLg6zQuDfZP_DzYlxRIfAoBRrqOmDtXefGPbP0KEw&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3PyVKDMAAA0H/Jue1YgVI8EiAKAmJAlkuGJWy1DYSyOv67Hd8fvB+Q5jkdBnJn - F3oDL2BNn5VDfrA6W528wmRqFK4u3mK09PYCg5S4El/FaVMnIeFE8ImWxJXMrrZ3Rqy43jJ57Clu - ZpuEpdaWc51hNzmy4gsiSTY6tC/lgbmIRRZ8NUdaso3E1dlHYZriyFn63Mqcd9QWmeSHsi5MgzZP - T+1k+Eb42QyR5+l1KJrBkdc4xjPnDnwT4AnqjWZUqvZ9iehexGOxBh897k412AG6dA2nA2kePUFS - lB34v5L72tFHWKUppxz8/gHI+tvJCgEAAA== - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:45 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: !!binary | - LS09PT09PT09PT09PT09PT0xNjQ3NjYxNTQ1NzQ4MTQ2NjQ2PT0NCmNvbnRlbnQtdHlwZTogYXBw - bGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOA0KDQp7Im5hbWUiOiAiZ3ppcHBlZF9maWxlL3Rl - c3RfMDA2LnR4dCIsICJjb250ZW50RW5jb2RpbmciOiAiZ3ppcCJ9DQotLT09PT09PT09PT09PT09 - PTE2NDc2NjE1NDU3NDgxNDY2NDY9PQ0KY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi94LWd6aXAN - Cg0KH4sIAL1IQV4C/0vOzytJzStRKMlXKC/KLEnlCsnILFYAouSixKpKrvCMSoWU/NRihRKQcHl+ - UTYACRjEVjEAAAANCi0tPT09PT09PT09PT09PT09MTY0NzY2MTU0NTc0ODE0NjY0Nj09LS0= - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '338' - User-Agent: - - python-requests/2.22.0 - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT0xNjQ3NjYxNTQ1NzQ4 - MTQ2NjQ2PT0i - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive004/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive004/gzipped_file/test_006.txt/1581336765856877\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt\"\ - ,\n \"name\": \"gzipped_file/test_006.txt\",\n \"bucket\": \"testingarchive004\"\ - ,\n \"generation\": \"1581336765856877\",\n \"metageneration\": \"1\",\n \"\ - contentType\": \"application/x-gzip\",\n \"timeCreated\": \"2020-02-10T12:12:45.856Z\"\ - ,\n \"updated\": \"2020-02-10T12:12:45.856Z\",\n \"storageClass\": \"STANDARD\"\ - ,\n \"timeStorageClassUpdated\": \"2020-02-10T12:12:45.856Z\",\n \"size\"\ - : \"65\",\n \"md5Hash\": \"VAdWnLmeVe67Tgo6PJqzLw==\",\n \"mediaLink\": \"\ - https://storage.googleapis.com/download/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt?generation=1581336765856877&alt=media\"\ - ,\n \"contentEncoding\": \"gzip\",\n \"crc32c\": \"GE333g==\",\n \"etag\"\ - : \"CO34y8H6xucCEAE=\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '828' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:45 GMT - ETag: - - CO34y8H6xucCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UraADYAVCYR_c63wuloccCyJM2vkl61Y_6ql-X12AzDtqhLzWI4rnoFtLd9BW-nN7TzaiBGmWjzmcZqg2GZsu-r9PEKBQ - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive004?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004\"\ - ,\n \"id\": \"testingarchive004\",\n \"name\": \"testingarchive004\",\n\ - \ \"projectNumber\": \"582817289294\",\n \"metageneration\": \"1\",\n \"\ - location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\"\ - ,\n \"timeCreated\": \"2020-02-10T12:12:27.090Z\",\n \"updated\": \"2020-02-10T12:12:27.090Z\"\ - ,\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\"\ - : false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": false\n\ - \ }\n },\n \"locationType\": \"multi-region\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '562' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:46 GMT - ETag: - - CAE= - Expires: - - Mon, 10 Feb 2020 12:12:46 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Ur1ZLMGUyn08nAKQLnONLP34zZ5n00BwrFAZV-vgZdxnku8r03krFSeoDIP06XwFabkdzqMnF2Kaxn1M6-hOsB5jazmzw - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive004/gzipped_file/test_006.txt/1581336765856877\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt\"\ - ,\n \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt?generation=1581336765856877&alt=media\"\ - ,\n \"name\": \"gzipped_file/test_006.txt\",\n \"bucket\": \"testingarchive004\"\ - ,\n \"generation\": \"1581336765856877\",\n \"metageneration\": \"1\",\n\ - \ \"contentType\": \"application/x-gzip\",\n \"storageClass\": \"STANDARD\"\ - ,\n \"size\": \"65\",\n \"md5Hash\": \"VAdWnLmeVe67Tgo6PJqzLw==\",\n \"\ - contentEncoding\": \"gzip\",\n \"crc32c\": \"GE333g==\",\n \"etag\": \"\ - CO34y8H6xucCEAE=\",\n \"timeCreated\": \"2020-02-10T12:12:45.856Z\",\n \"\ - updated\": \"2020-02-10T12:12:45.856Z\",\n \"timeStorageClassUpdated\": \"\ - 2020-02-10T12:12:45.856Z\"\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '846' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:46 GMT - ETag: - - CO34y8H6xucCEAE= - Expires: - - Mon, 10 Feb 2020 12:12:46 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpD4XyXWMnhvK0uhEQc6ABY-uWUEgWxFhUbOJ0zdTEtlpERvBim0LLg8MnUpaVQ8O3UPPMor2op9t6h9G22tCF6CNTjVg - status: - code: 200 - message: OK -- request: - body: '{"contentType": "text/plain", "contentEncoding": "gzip"}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '56' - Content-Type: - - application/json - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: PATCH - uri: https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt?generation=1581336765856877&projection=full&prettyPrint=false - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive004/gzipped_file/test_006.txt/1581336765856877\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt\"\ - ,\n \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt?generation=1581336765856877&alt=media\"\ - ,\n \"name\": \"gzipped_file/test_006.txt\",\n \"bucket\": \"testingarchive004\"\ - ,\n \"generation\": \"1581336765856877\",\n \"metageneration\": \"2\",\n\ - \ \"contentType\": \"text/plain\",\n \"storageClass\": \"STANDARD\",\n \ - \ \"size\": \"65\",\n \"md5Hash\": \"VAdWnLmeVe67Tgo6PJqzLw==\",\n \"contentEncoding\"\ - : \"gzip\",\n \"crc32c\": \"GE333g==\",\n \"etag\": \"CO34y8H6xucCEAI=\"\ - ,\n \"timeCreated\": \"2020-02-10T12:12:45.856Z\",\n \"updated\": \"2020-02-10T12:12:46.626Z\"\ - ,\n \"timeStorageClassUpdated\": \"2020-02-10T12:12:45.856Z\",\n \"acl\"\ - : [\n {\n \"kind\": \"storage#objectAccessControl\",\n \"object\"\ - : \"gzipped_file/test_006.txt\",\n \"generation\": \"1581336765856877\"\ - ,\n \"id\": \"testingarchive004/gzipped_file/test_006.txt/1581336765856877/project-owners-582817289294\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt/acl/project-owners-582817289294\"\ - ,\n \"bucket\": \"testingarchive004\",\n \"entity\": \"project-owners-582817289294\"\ - ,\n \"role\": \"OWNER\",\n \"etag\": \"CO34y8H6xucCEAI=\",\n \ - \ \"projectTeam\": {\n \"projectNumber\": \"582817289294\",\n \ - \ \"team\": \"owners\"\n }\n },\n {\n \"kind\": \"storage#objectAccessControl\"\ - ,\n \"object\": \"gzipped_file/test_006.txt\",\n \"generation\"\ - : \"1581336765856877\",\n \"id\": \"testingarchive004/gzipped_file/test_006.txt/1581336765856877/project-editors-582817289294\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt/acl/project-editors-582817289294\"\ - ,\n \"bucket\": \"testingarchive004\",\n \"entity\": \"project-editors-582817289294\"\ - ,\n \"role\": \"OWNER\",\n \"etag\": \"CO34y8H6xucCEAI=\",\n \ - \ \"projectTeam\": {\n \"projectNumber\": \"582817289294\",\n \ - \ \"team\": \"editors\"\n }\n },\n {\n \"kind\": \"storage#objectAccessControl\"\ - ,\n \"object\": \"gzipped_file/test_006.txt\",\n \"generation\"\ - : \"1581336765856877\",\n \"id\": \"testingarchive004/gzipped_file/test_006.txt/1581336765856877/project-viewers-582817289294\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt/acl/project-viewers-582817289294\"\ - ,\n \"bucket\": \"testingarchive004\",\n \"entity\": \"project-viewers-582817289294\"\ - ,\n \"role\": \"READER\",\n \"etag\": \"CO34y8H6xucCEAI=\",\n \ - \ \"projectTeam\": {\n \"projectNumber\": \"582817289294\",\n \ - \ \"team\": \"viewers\"\n }\n },\n {\n \"kind\": \"storage#objectAccessControl\"\ - ,\n \"object\": \"gzipped_file/test_006.txt\",\n \"generation\"\ - : \"1581336765856877\",\n \"id\": \"testingarchive004/gzipped_file/test_006.txt/1581336765856877/user-codecov-marketing-deployment@genuine-polymer-165712.iam.gserviceaccount.com\"\ - ,\n \"selfLink\": \"https://storage.googleapis.com/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt/acl/user-codecov-marketing-deployment@genuine-polymer-165712.iam.gserviceaccount.com\"\ - ,\n \"bucket\": \"testingarchive004\",\n \"entity\": \"user-codecov-marketing-deployment@genuine-polymer-165712.iam.gserviceaccount.com\"\ - ,\n \"role\": \"OWNER\",\n \"email\": \"codecov-marketing-deployment@genuine-polymer-165712.iam.gserviceaccount.com\"\ - ,\n \"etag\": \"CO34y8H6xucCEAI=\"\n }\n ],\n \"owner\": {\n \ - \ \"entity\": \"user-codecov-marketing-deployment@genuine-polymer-165712.iam.gserviceaccount.com\"\ - \n }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '3636' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:46 GMT - ETag: - - CO34y8H6xucCEAI= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2UpyJoHar_gPI75279HEnRgqOSdlowhncpfNN1C8Bc7rENAcbIX-rVMKJA-_j4HZoNrKYHjOOFTGD6fgvF_yzIQIOPA5xw - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Connection: - - keep-alive - User-Agent: - - python-requests/2.22.0 - accept-encoding: - - gzip - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/testingarchive004/o/gzipped_file%2Ftest_006.txt?generation=1581336765856877&alt=media - response: - body: - string: !!binary | - H4sIAL1IQV4C/0vOzytJzStRKMlXKC/KLEnlCsnILFYAouSixKpKrvCMSoWU/NRihRKQcHl+UTYA - CRjEVjEAAAA= - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Encoding: - - gzip - Content-Type: - - text/plain - Date: - - Mon, 10 Feb 2020 12:12:47 GMT - ETag: - - CO34y8H6xucCEAI= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Up71PiAhi4lbHvm7MmVJQfWLyj7-TL7tgBccSHsJxKbcE7ouOzxs68VJGOAHRr2wl-0loEpkWh32LCPMc8-jwvNr0z9yQ - X-Goog-Generation: - - '1581336765856877' - X-Goog-Hash: - - crc32c=GE333g==,md5=VAdWnLmeVe67Tgo6PJqzLw== - X-Goog-Metageneration: - - '2' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_read_file_does_not_exist.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_read_file_does_not_exist.yaml deleted file mode 100644 index 35783e860..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_read_file_does_not_exist.yaml +++ /dev/null @@ -1,106 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiZTAwOTg4NzVhNmJlN2ZkMGZiOGQ1YjVlZmQ2YjZmNjYyZWZmNzI5NSJ9.eyJpYXQiOiAxNTgxMzM2NzY0LCAiZXhwIjogMTU4MTM0MDM2NCwgImlzcyI6ICJjb2RlY292LW1hcmtldGluZy1kZXBsb3ltZW50QGdlbnVpbmUtcG9seW1lci0xNjU3MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCAiYXVkIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwgInNjb3BlIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5mdWxsX2NvbnRyb2wgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRfb25seSBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF93cml0ZSJ9.N4lw45cr-KpqMsKjt1S4_Ll1YMAl33xAJoEw-XIpH1F_Mwjv_q51nGV8M00DDLqStemCVWRq-L5Lc1S2OreMXcZoujvRxnpknvccN8D_csx9cJ59Q8kNpPL5Jq0-HgVWZ9h0ysJTAPl09JVbKmCZzx3OF-OpSlDVannxcxUOlblVDygg1OOT_AmT6RB3_1YxREI0deqo7Rg3qUXai8z2ZpmRI_x-HmbxU_s5xpoosTt4txjZj21Ujcrljgiz6u5KKmM0lSEGRMn28Fos77T5r8h7bUdN2hTvsGHTW7ZXQXef8Xdb8i7eI5NRmPBIpqwYBAdDMO2fMWU2J5SM3p5gHg&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '987' - User-Agent: - - python-requests/2.22.0 - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x3P23JDQAAA0H/Z5ySTIi59Q9xrEIbwsuOyEjpZ7LIlmf57Mz1/cF6grGtEKZyH - b4TBJ9hKTjnUB2/0NRahtZeJYVE33m7YwwHNmB6sSGbNMOUu7zjYTKsUf+nXfGHnUwnbSX7sBTFp - CmcxUXQZqa71sVQUMusz1XZxqHHHKgr9rk6KfccXTeUfsVRxmCTneXa8UWobd/pgCyQ0e14Go01Z - lFehSNJivl1tW3yoVkQlwQq4GKqWHDU/SEhjUc7TxVYud02poHU3RNML+SdTwA6gdewIorB79/iT - ouzA/xXO24jeYQ2VBBHw+wfRtfKbCgEAAA== - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:44 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - X-Goog-API-Client: - - gl-python/3.7.6 gax/1.16.0 gapic/1.18.0 gccl/1.18.0 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive004/o/test_read_file_does_not_exist%2Fdoes_not_exist.txt?projection=noAcl&prettyPrint=false - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object:\ - \ testingarchive004/test_read_file_does_not_exist/does_not_exist.txt\",\n\ - \ \"errors\": [\n {\n \"message\": \"No such object: testingarchive004/test_read_file_does_not_exist/does_not_exist.txt\"\ - ,\n \"domain\": \"global\",\n \"reason\": \"notFound\"\n \ - \ }\n ]\n }\n}\n" - headers: - Alt-Svc: - - quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; - ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; - ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '339' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 10 Feb 2020 12:12:45 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - AEnB2Ur_jl9lTCLN8ixyXVD4HaQ95asex5TvwfEXLWTmWOGjm06SOxpBORTCkGSFuErWUT7pyvJsIZBRtwMMOK9CzXf4GekbCQ - status: - code: 404 - message: Not Found -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_delete_file.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_delete_file.yaml deleted file mode 100644 index 5bd22ea40..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_delete_file.yaml +++ /dev/null @@ -1,217 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiYWVlMzMxYmEyNzQ2OTljZWNmNjMwNzgxMzdmNDNhODM0NGY0YWM4ZiJ9.eyJpYXQiOiAxNjcyNzc2MDM5LCAiZXhwIjogMTY3Mjc3OTYzOSwgImlzcyI6ICJsb2NhbHN0b3JhZ2V0ZXN0ZXJAZ2VudWluZS1wb2x5bWVyLTE2NTcxMi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsICJhdWQiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLCAic2NvcGUiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLmZ1bGxfY29udHJvbCBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF9vbmx5IGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5yZWFkX3dyaXRlIn0.LspMfHK-bnYewUBaCOiw_LXGwyCtT5CNFtcMQUYVzQ0ZRfdL5yF_bqYNyR2HvtA33C6Vqey4iTz0uXWJ3IODlRvqXkLAVcsZoV097Y07FHrfeBmtVDPwEABwCx28k9XQCbnDkszchmdwr6unfvGJ90oCA0B4CNgDHxlPXJj5FKJYLNto1xlPnkUrOJSelyrF_1-iFcnKWU-nSD52jGAzq9Mv7fffiuMxDYjqneXKe5rM5DmfkPsnJvyOW7S5Xyi0Od1e3iVpDqn-mTIQOs5KceGqPe0UmCfUSZKK_SNkGTptIIhRtcyRIjaU85SSTwOFlnkVAnwfHOj9HRGAa4TB4w&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '974' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - python-requests/2.26.0 - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/+3US3KCMBgA4Luwtk6IZijdESxSxUHkvWJ4/CIviSEK2und63TVQ/gd4vuW0jyH - YUhE38BZ+pDuKVbn+TxDmqe0rF7RQFh6PLF0abcc0aN9WocOqoWDyelhPHgj+oqfYHukIsBaQo3s - UuoJlXm8jFG0W1t57Y1yWAEuq5GEuN2P+GqBUfu1p0DkXjKXgqCmTzpfVtxeD8HP8nS4aLcWd71y - lgsnMM00JaqNCbd3V5SpLRFCt1YRK/afC1a8jxHXp852lEN1eOs2yqPciG7MnBtMZoNYE2jJNr5H - rVdGoYuuBRigfh1qPn95eflPmkkwsYrDkFTPDxZEVWfSXw6JuDN4DkEh5cCln18gCEG+OwQAAA== - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:00:39 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: !!binary | - LS09PT09PT09PT09PT09PT04ODM1Mzk4NjI5MDAxMjk2NjgyPT0NCmNvbnRlbnQtdHlwZTogYXBw - bGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOA0KDQp7Im5hbWUiOiAidGVzdF93cml0ZV90aGVu - X2RlbGV0ZV9maWxlL3Jlc3VsdC50eHQiLCAiY29udGVudFR5cGUiOiAidGV4dC9wbGFpbiIsICJj - b250ZW50RW5jb2RpbmciOiAiZ3ppcCJ9DQotLT09PT09PT09PT09PT09PTg4MzUzOTg2MjkwMDEy - OTY2ODI9PQ0KY29udGVudC10eXBlOiB0ZXh0L3BsYWluDQoNCh+LCABnibRjAv/LyS9KzVXILCgu - zVVIyc/JL1IoSS0uiS8vyixJjS/JSM2LL0pNTIlPy8xJVTi8EAAULvu4LgAAAA0KLS09PT09PT09 - PT09PT09PT04ODM1Mzk4NjI5MDAxMjk2NjgyPT0tLQ== - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '373' - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/ffefb019-7e3a-41a8-92b1-e0e1798f27eb - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT04ODM1Mzk4NjI5MDAx - Mjk2NjgyPT0i - x-upload-content-type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive02/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive02/test_write_then_delete_file/result.txt/1672776040210722\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_delete_file%2Fresult.txt\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_write_then_delete_file%2Fresult.txt?generation=1672776040210722&alt=media\",\n - \ \"name\": \"test_write_then_delete_file/result.txt\",\n \"bucket\": \"testingarchive02\",\n - \ \"generation\": \"1672776040210722\",\n \"metageneration\": \"1\",\n \"contentType\": - \"text/plain\",\n \"storageClass\": \"STANDARD\",\n \"size\": \"66\",\n - \ \"md5Hash\": \"fuUKf7rhJrzppqk07oylvQ==\",\n \"contentEncoding\": \"gzip\",\n - \ \"crc32c\": \"gRGPDA==\",\n \"etag\": \"CKLCqa2YrPwCEAE=\",\n \"timeCreated\": - \"2023-01-03T20:00:40.249Z\",\n \"updated\": \"2023-01-03T20:00:40.249Z\",\n - \ \"timeStorageClassUpdated\": \"2023-01-03T20:00:40.249Z\"\n}\n" - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '890' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:00:40 GMT - ETag: - - CKLCqa2YrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtXPsFNrf63dl-HBxyCheylrJfBNrJaMJseAVVng2Bn8QT3VeIsowNWZFz5yrXyLWzdPsu6LTIuHND7rR996Fvt2HD5bzyv - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/dbf59ed1-b7de-43ff-a8c4-24168c7f165b - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_delete_file%2Fresult.txt?prettyPrint=false - response: - body: - string: '' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - application/json - Date: - - Tue, 03 Jan 2023 20:00:40 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtNfQGfwqvwxT0qZF0QnIrgKdX54_lUoDqljORe6BvTyVHqOrYOgvHUjYCnXxndzANsNzzHGkWywgGEjSIRczhgE3OJO8MX - status: - code: 204 - message: No Content -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/56c65b31-5906-470a-9a71-f54717a98329 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_delete_file%2Fresult.txt?prettyPrint=false&projection=noAcl - response: - body: - string: '{"error":{"code":404,"message":"No such object: testingarchive02/test_write_then_delete_file/result.txt","errors":[{"message":"No - such object: testingarchive02/test_write_then_delete_file/result.txt","domain":"global","reason":"notFound"}]}}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '241' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:00:41 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtPSjiPqevx17DNCk2u2PwuaDcdl1A3VNJh406A9oD-UowmwkohIJ7CaFT417BrX9h16gbiEWYzRCnKz4fiSyGbwK37Kk3J - status: - code: 404 - message: Not Found -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file.yaml deleted file mode 100644 index 67d9d08a7..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file.yaml +++ /dev/null @@ -1,284 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiYWVlMzMxYmEyNzQ2OTljZWNmNjMwNzgxMzdmNDNhODM0NGY0YWM4ZiJ9.eyJpYXQiOiAxNjcyNzc4MDc0LCAiZXhwIjogMTY3Mjc4MTY3NCwgImlzcyI6ICJsb2NhbHN0b3JhZ2V0ZXN0ZXJAZ2VudWluZS1wb2x5bWVyLTE2NTcxMi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsICJhdWQiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLCAic2NvcGUiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLmZ1bGxfY29udHJvbCBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF9vbmx5IGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5yZWFkX3dyaXRlIn0.sNco9v4udXM5ThyFZQMClvHTJcP0lEVSIwtlze5YHl6mC3qYZU0z2BdVv2CJ0SVoWcmG-6gxmNsfVc3WaGUJfM7EWxoES--31rchJZlyo0rQk-xfIcHvZemv51WNmBgDlo9a2QA2brz-TYBsbrFTCrz7UjtwEnNNunwQ18BBFrJCnq2VTyiXu_J9tIsjBaR9lyZw1xC5pVZApI9uREthMqs5sH1j5gqvJybNnN46PrxhNyLYUBVTdgRawMOzfWLMmzhfXqy3KXACi-OHfMG7Tbb56ABvMsu3RDffxGO3tC9yeUTBVMuNXK95WYqqY5TZQq93ZE_lPM1GrrEG9haRAQ&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '974' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - python-requests/2.26.0 - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/+3US3KCMAAA0LtkLU4ARehOgig0LR+RgpsMxFBFPgGCLe307nW66iF8h3jfIKOU - DQMR7ZU14AlMmWLM6TyH62hV8RKtcHhubD9ChMgSHzNrpIW92zsHv0ortGiS2LN6URb70sXka3vr - nNJht97ENQyLkI/mUdthffTkuFleZZZMr1UuqTclwOScvEi2GC3DbzURbE7QEzwR72a3u2oqd9eX - GtIoVJYwRp6r8szXkcUleYEr7Q22zFkPZtGFSXSAh9RwrU3s9zWpTQmFduKexFSiLU7ps64H3XHS - M1nSuyFOO2IVgn7k9sLO5w8PD/+BGWCf/NKzgVzuH6hLw5iBvxyImDi7D2GyrGc9+PkFYO2m+DsE - AAA= - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:34:34 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: !!binary | - LS09PT09PT09PT09PT09PT02OTMxNTg5NTA5NzU5NTc2OTM3PT0NCmNvbnRlbnQtdHlwZTogYXBw - bGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOA0KDQp7Im5hbWUiOiAidGVzdF93cml0ZV90aGVu - X3JlYWRfZmlsZS9yZXN1bHQiLCAiY29udGVudEVuY29kaW5nIjogImd6aXAiLCAiY29udGVudFR5 - cGUiOiAidGV4dC9wbGFpbiJ9DQotLT09PT09PT09PT09PT09PTY5MzE1ODk1MDk3NTk1NzY5Mzc9 - PQ0KY29udGVudC10eXBlOiB0ZXh0L3BsYWluDQoNCh+LCABakbRjAv/LyS9KzVXILCguzVVIyc/J - L1IoSS0uiS8vyixJjS/JSM2LL0pNTIlPy8xJVTi8EAAULvu4LgAAAA0KLS09PT09PT09PT09PT09 - PT02OTMxNTg5NTA5NzU5NTc2OTM3PT0tLQ== - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '367' - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/729072a2-a7ee-40bd-b7a8-26960b1094bf - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT02OTMxNTg5NTA5NzU5 - NTc2OTM3PT0i - x-upload-content-type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive02/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive02/test_write_then_read_file/result/1672778075271582\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?generation=1672778075271582&alt=media\",\n - \ \"name\": \"test_write_then_read_file/result\",\n \"bucket\": \"testingarchive02\",\n - \ \"generation\": \"1672778075271582\",\n \"metageneration\": \"1\",\n \"contentType\": - \"text/plain\",\n \"storageClass\": \"STANDARD\",\n \"size\": \"66\",\n - \ \"md5Hash\": \"hv1ICqOE3Eb7KmMiIjodkA==\",\n \"contentEncoding\": \"gzip\",\n - \ \"crc32c\": \"YqXjmQ==\",\n \"etag\": \"CJ7j2/efrPwCEAE=\",\n \"timeCreated\": - \"2023-01-03T20:34:35.399Z\",\n \"updated\": \"2023-01-03T20:34:35.399Z\",\n - \ \"timeStorageClassUpdated\": \"2023-01-03T20:34:35.399Z\"\n}\n" - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '866' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:34:35 GMT - ETag: - - CJ7j2/efrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdsHXPDk1OvcUmlTeCu3Q-hyXfetN2Ebnn3p6Wnn-P7WhCPeiLS8EmRLRJ-fYEcKzRRy2y_lSXbNaxnFYajPav6DcFNKbljC - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/42bdb8f1-ddcd-47ba-bfe2-0b0991c5a2ad - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?generation=1672778075271582&prettyPrint=false&projection=noAcl - response: - body: - string: '{"kind":"storage#object","id":"testingarchive02/test_write_then_read_file/result/1672778075271582","selfLink":"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult","mediaLink":"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?generation=1672778075271582&alt=media","name":"test_write_then_read_file/result","bucket":"testingarchive02","generation":"1672778075271582","metageneration":"1","contentType":"text/plain","storageClass":"STANDARD","size":"66","md5Hash":"hv1ICqOE3Eb7KmMiIjodkA==","contentEncoding":"gzip","crc32c":"YqXjmQ==","etag":"CJ7j2/efrPwCEAE=","timeCreated":"2023-01-03T20:34:35.399Z","updated":"2023-01-03T20:34:35.399Z","timeStorageClassUpdated":"2023-01-03T20:34:35.399Z"}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '792' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:34:35 GMT - ETag: - - CJ7j2/efrPwCEAE= - Expires: - - Tue, 03 Jan 2023 20:34:35 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdvs1c-gHUzMon4mNmgjrEralxvge81Now2Oc0ij0LipykyLEnl71XpkiogKojHSsnhfPTY74FciY6GHu3nbosOdUg - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/ea1b4044-08d9-4d17-ab35-694255003478 - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?prettyPrint=false&projection=noAcl - response: - body: - string: '{"kind":"storage#object","id":"testingarchive02/test_write_then_read_file/result/1672778075271582","selfLink":"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult","mediaLink":"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?generation=1672778075271582&alt=media","name":"test_write_then_read_file/result","bucket":"testingarchive02","generation":"1672778075271582","metageneration":"1","contentType":"text/plain","storageClass":"STANDARD","size":"66","md5Hash":"hv1ICqOE3Eb7KmMiIjodkA==","contentEncoding":"gzip","crc32c":"YqXjmQ==","etag":"CJ7j2/efrPwCEAE=","timeCreated":"2023-01-03T20:34:35.399Z","updated":"2023-01-03T20:34:35.399Z","timeStorageClassUpdated":"2023-01-03T20:34:35.399Z"}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '792' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:34:36 GMT - ETag: - - CJ7j2/efrPwCEAE= - Expires: - - Tue, 03 Jan 2023 20:34:36 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdv6e5KEqm9V0mheJi5xJ-rUUvcRV6eC2pUfy2KCGyI7Fb1QdHbW8IU7hB2XM0mMEgtAyiUDB15rbUYmr9rIYkVLikgRkKed - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/f5db384b-b600-4e64-9931-e71e9ca6bdb6 - accept-encoding: - - gzip - content-type: - - application/json; charset=UTF-8 - x-upload-content-type: - - application/json; charset=UTF-8 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?alt=media&generation=1672778075271582 - response: - body: - string: !!binary | - H4sIAFqRtGMC/8vJL0rNVcgsKC7NVUjJz8kvUihJLS6JLy/KLEmNL8lIzYsvSk1MiU/LzElVOLwQ - ABQu+7guAAAA - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Encoding: - - gzip - Content-Type: - - text/plain - Date: - - Tue, 03 Jan 2023 20:34:36 GMT - ETag: - - CJ7j2/efrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Accept-Encoding - X-GUploader-UploadID: - - ADPycdtVL2mNWIZJVg0EcD5I37CRVOVWoemy5ss_sanQuRhFGd5gYZBaBXxdw8-b9_SyOBWIM0PtVtIJ4EiugV1sNcO-3g - X-Goog-Generation: - - '1672778075271582' - X-Goog-Hash: - - crc32c=YqXjmQ==,md5=hv1ICqOE3Eb7KmMiIjodkA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - X-Goog-Stored-Content-Encoding: - - gzip - X-Goog-Stored-Content-Length: - - '66' - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file_gzipped.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file_gzipped.yaml deleted file mode 100644 index 8105f85d8..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file_gzipped.yaml +++ /dev/null @@ -1,239 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiYWVlMzMxYmEyNzQ2OTljZWNmNjMwNzgxMzdmNDNhODM0NGY0YWM4ZiJ9.eyJpYXQiOiAxNjcyNzc4NTg4LCAiZXhwIjogMTY3Mjc4MjE4OCwgImlzcyI6ICJsb2NhbHN0b3JhZ2V0ZXN0ZXJAZ2VudWluZS1wb2x5bWVyLTE2NTcxMi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsICJhdWQiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLCAic2NvcGUiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLmZ1bGxfY29udHJvbCBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF9vbmx5IGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5yZWFkX3dyaXRlIn0.qANt71cSO7TLsz-yMJQ6PaWIUAtbhBny67OQ_Ih27_wxqnPuEknnY73LP_6LNJ8JTmo5_f54-f_kGK91HSPPhcyfsHhNfLRMbgtxl6LUGKS-kt5lLSr7t1BuphWHcCTRt7CrU59jC41IhLcopQfZzGpAAClMVdxQNDgSx27X5o9Q4dQ1o8NTHsLDxGxLzWF4NS9KXeIAz2KTib9xKB9_PhLsUiHTem34iaNdbli1JdD0W0g5MF7ox0CoSjmKPkLIPmbbPeQ2eCdTZM2g86CTg8dxpbv_2VCXBX0FmxgFc0v2BbeGIQqgsWhxYIZ0hXdYlHXg3NWB22jnh5tRBJ6nMQ&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '974' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - python-requests/2.26.0 - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/+3Uy3KCMABA0X/JWh0e8uouWEGqDYhBDRsm0MAgCjSgEpz+e52u+hGe/d3eB6BZ - xrou6ZuK1eANCKpYs2yWShAb5/YEzSCR23wXSkXFuROFzM43hBEYUZ3GzLFvqeWZ6UXJ0JdUajhE - KDMDi0QX66pUZVzujyo90yyuudvwxDWkszfKQdRcPnvkIEznPpS2y6u6GRSLeIdih49VMU7HnKCV - 6qkKNEWZGSuyLvxQEC1feuhkNkUnFvfjsx22wYfbTPV0iOG8uPqirLHQoXPA2uJ7PSjKen/rcTj3 - ZDZSbjh3LdDde+2Td1m309nLy8t/YALY0JacdUn5/IGqWdYE/M0h6UXLnoewGeWMg59fqhbtDjsE - AAA= - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:43:08 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: !!binary | - LS09PT09PT09PT09PT09PT00NjM0ODE2MDEwNzAyODQ1MDI3PT0NCmNvbnRlbnQtdHlwZTogYXBw - bGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOA0KDQp7Im5hbWUiOiAidGVzdF93cml0ZV90aGVu - X3JlYWRfZmlsZS9yZXN1bHQiLCAiY29udGVudEVuY29kaW5nIjogImd6aXAifQ0KLS09PT09PT09 - PT09PT09PT00NjM0ODE2MDEwNzAyODQ1MDI3PT0NCmNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbg0K - DQofiwgAXJO0YwL/y8kvSs1VyCwoLs1VSMnPyS9SKEktLokvL8osSY0vyUjNiy9KTUyJT8vMSVU4 - vBAAFC77uC4AAAANCi0tPT09PT09PT09PT09PT09NDYzNDgxNjAxMDcwMjg0NTAyNz09LS0= - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '338' - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/d9db5f75-d812-4178-ab4c-c768a35c4506 - content-type: - - !!binary | - bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT00NjM0ODE2MDEwNzAy - ODQ1MDI3PT0i - x-upload-content-type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testingarchive02/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testingarchive02/test_write_then_read_file/result/1672778589349607\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?generation=1672778589349607&alt=media\",\n - \ \"name\": \"test_write_then_read_file/result\",\n \"bucket\": \"testingarchive02\",\n - \ \"generation\": \"1672778589349607\",\n \"metageneration\": \"1\",\n \"contentType\": - \"text/plain\",\n \"storageClass\": \"STANDARD\",\n \"size\": \"66\",\n - \ \"md5Hash\": \"9DJui8ocYzUi1wFGbhqHOg==\",\n \"contentEncoding\": \"gzip\",\n - \ \"crc32c\": \"3No4JA==\",\n \"etag\": \"COfN7OyhrPwCEAE=\",\n \"timeCreated\": - \"2023-01-03T20:43:09.477Z\",\n \"updated\": \"2023-01-03T20:43:09.477Z\",\n - \ \"timeStorageClassUpdated\": \"2023-01-03T20:43:09.477Z\"\n}\n" - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '866' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:43:09 GMT - ETag: - - COfN7OyhrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtG4qJRiGEfmuF3-CNcIdexIWe7Sv0dB9kV41KY62ppfPcjuUJ8mhZgFXVXkhjsv7TG3UXPR0JgY3t8qQayi8H0xvq1hDpO - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/090533e5-9553-48e6-a4dc-77686e714b1a - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?prettyPrint=false&projection=noAcl - response: - body: - string: '{"kind":"storage#object","id":"testingarchive02/test_write_then_read_file/result/1672778589349607","selfLink":"https://www.googleapis.com/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult","mediaLink":"https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?generation=1672778589349607&alt=media","name":"test_write_then_read_file/result","bucket":"testingarchive02","generation":"1672778589349607","metageneration":"1","contentType":"text/plain","storageClass":"STANDARD","size":"66","md5Hash":"9DJui8ocYzUi1wFGbhqHOg==","contentEncoding":"gzip","crc32c":"3No4JA==","etag":"COfN7OyhrPwCEAE=","timeCreated":"2023-01-03T20:43:09.477Z","updated":"2023-01-03T20:43:09.477Z","timeStorageClassUpdated":"2023-01-03T20:43:09.477Z"}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '792' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Tue, 03 Jan 2023 20:43:09 GMT - ETag: - - COfN7OyhrPwCEAE= - Expires: - - Tue, 03 Jan 2023 20:43:09 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ADPycdtlgDynCKIeacwK_RIBMVxM8rCU4_FDX-MHpHTQRV1kFypRssinnICXwY8Swz_PUGS07v9fF-cT2rEJKpbgCZF9OIhWeT_u - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 - X-Goog-API-Client: - - gcloud-python/2.7.0 gl-python/3.10.5 gax/2.8.2 gccl/2.7.0 gccl-invocation-id/e7fc5230-29f5-48df-83ba-59f32ef7ec63 - accept-encoding: - - gzip - content-type: - - application/json; charset=UTF-8 - x-upload-content-type: - - application/json; charset=UTF-8 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/testingarchive02/o/test_write_then_read_file%2Fresult?alt=media&generation=1672778589349607 - response: - body: - string: !!binary | - H4sIAFyTtGMC/8vJL0rNVcgsKC7NVUjJz8kvUihJLS6JLy/KLEmNL8lIzYsvSk1MiU/LzElVOLwQ - ABQu+7guAAAA - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; - ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Encoding: - - gzip - Content-Type: - - text/plain - Date: - - Tue, 03 Jan 2023 20:43:10 GMT - ETag: - - COfN7OyhrPwCEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Accept-Encoding - X-GUploader-UploadID: - - ADPycduX1CBeDwPVQul0PGxExjq0PI-ixyJD5vO1Z2hcQ0-njz5f-xmfxGj9okzosZ0Y8M3kMgU12sEl3Mr2KzG_NBFfkHf6Ek8C - X-Goog-Generation: - - '1672778589349607' - X-Goog-Hash: - - crc32c=3No4JA==,md5=9DJui8ocYzUi1wFGbhqHOg== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - X-Goog-Stored-Content-Encoding: - - gzip - X-Goog-Stored-Content-Length: - - '66' - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file_obj.yaml b/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file_obj.yaml deleted file mode 100644 index 012fffc1b..000000000 --- a/tests/unit/storage/cassetes/test_gcp/TestGCPStorateService/test_write_then_read_file_obj.yaml +++ /dev/null @@ -1,297 +0,0 @@ -interactions: -- request: - body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiMjg4YThhNDdkODAzYjk0NTc5Mzc3Y2YwZDgzYjZiODc5MDFlMDdhMSJ9.eyJpYXQiOiAxNzAxNzIzOTEwLCAiZXhwIjogMTcwMTcyNzUxMCwgImlzcyI6ICJzY290dC10ZXN0LWJ1bmRsZS1hbmFseXNpc0Bjb2RlY292LWRldi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsICJhdWQiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLCAic2NvcGUiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLmZ1bGxfY29udHJvbCBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF9vbmx5IGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5yZWFkX3dyaXRlIn0.JrezkhbttaBaGtj6b6vLugA4pJKBq2_3PXZ52_m4qvi6nHYkvfUCkXya6paDct1TvQUQH93RUrgYKoI5iAhsXiv8X8n4p_zTrN8HDYQaFxM-gG3buE3l8JMrEx5XdPxNEVNdKKlfAMt2dUVzMO7yyo6vpMNFlKZaWmzjVzh6rsd6NMqWCfTz-7vGkkFj_HC4HcCgzwOd4Yii6cCBpGAPngNpYa60jliQU8zIa5E1-lFrddotOlt76Hpv0pxhmf0vsj_ad3DtSnAwBZ62i-Gl6YEAqN5qhQkZUFi4mWt3v8lIZD4qePSGu7mRhJT0xf45MOzi-Eb2KTUHG88J9mkS7w&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '970' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - python-requests/2.31.0 - x-goog-api-client: - - gl-python/3.9.16 auth/2.23.2 auth-request-type/at cred-type/sa - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAAAAAAC/x2USa6jSABE7+J1USKZ6R22P/5gU5jkM5hNiiFJBjMlM6W+e1t9gVBI8eL9PcVp - iscRTV2N29M/pz3m1N/p75TVXsjvIyIhz7x39uqOAeXmyzZoz83NNSusXnLmsFnSaogyHvguMfPO - hh+Wpp1xW8HxNJ/Y1p+dmkdXpy81Cfxc2niNiwLvmcD/GaDot8xQDOWIvjVJSre8YODIrep9wY8o - fN460uWFmH7lSv3EnuCHspirDxpfGfcsTfgV35JOix8GexXXJy56oMZLlnlfT7ucQ+4qDnuyjpnS - xkKsyMF4ZZ7e9WcNu5n7en4n94zO9qLNfcGyF+67uWpUv92sIXvsiepvTH/JB2we9GE/qMfyQqB1 - P/U7kS0J/QmUQFnNxlCek8zeyYUq9zk/5wDRZEuWrwDCzve6GYAmgFe5buQDtkCkViDRl59cb487 - fUytBwoGeCLW+VSQJkl1s/6BDcJ3h70+eBVoFVpIh0PJJfjgCbKg4jGgTaifqyQygSq2bWxY0rL5 - i6VLCjMldlYVLJ44X+HdyaixqryXgK/KnB/2VwFNPVHoAYfGXDlhsuJwllJvz1+MoU77AnPlLYRd - FRmrjHD2soZVtjsus8bZknYWeRHcMh++D8kidCnCQgZjpzKOwgs9TOkIvQ8tOxkV1yDYFwXjDHH+ - ilCGtlAqJTrjzI5qWPUOhCBrz7FL3OJlvN/+TJokZNnpPAdH6EOB/aRPHO1Qp5MNh81m7QcWm6BZ - zMlNLa/elJG8S8VFIFocRrDWusJ45KOCbPVMjLgvPh3YbINGehRubIlNacyjyGXEdSqkBwu3VZ78 - bhEitqm7ttCshMdJ0nNMf8jy6OyfqUCed12g8xXQ4/ati0MstDFziP3ggmRzSRnusuPzdXMQl4iY - DJbnI9DvIaTzSJ3qWF0XyhWv7/6I08OqGTM/81yqWCRF57mWmnWRQOREIGk8mheJ4IX18SY+Y+38 - 1oLdEO0JMlGSG35FnJ2TO1IMPUmFrJaLipCh6fWUYmKZPWVh1UKXMxc2onORKnIUt+IYd4Hhb/Ms - BvLZBVRibCMLQOqFfbToZ+qYTBXMnz86zI5ygwatffp1wltfUjyi8uMDXlTVX6f/5YCmvccfQ5xx - TDE9/fsfaVak4DsEAAA= - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 04 Dec 2023 21:05:10 GMT - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: '{"name": "test_write_then_read_file_obj/result"}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '48' - User-Agent: - - gcloud-python/2.11.0 gl-python/3.9.16 grpc/1.59.0 gax/2.12.0 gccl/2.11.0 - content-type: - - application/json; charset=UTF-8 - x-allowed-locations: - - '0x0' - x-goog-api-client: - - cred-type/sa - x-upload-content-type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 04 Dec 2023 21:05:10 GMT - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Location: - - https://storage.googleapis.com/upload/storage/v1/b/testing/o?uploadType=resumable&upload_id=ABPtcPrSstlUpHWiVP3qsSmJCuvrzD6y-bXGIhYtSC3ZPIGF06Kvd8AY3get8RYlxVwKJxa4xj2lQfKDQTg6OqFX0O5mjGnpPTTV-fXd2mAJYds1dg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ABPtcPrSstlUpHWiVP3qsSmJCuvrzD6y-bXGIhYtSC3ZPIGF06Kvd8AY3get8RYlxVwKJxa4xj2lQfKDQTg6OqFX0O5mjGnpPTTV-fXd2mAJYds1dg - status: - code: 200 - message: OK -- request: - body: "lorem ipsum dolor test_write_then_read_file \xE1" - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '46' - User-Agent: - - gcloud-python/2.11.0 gl-python/3.9.16 grpc/1.59.0 gax/2.12.0 gccl/2.11.0 - content-range: - - bytes 0-45/46 - content-type: - - application/octet-stream - x-allowed-locations: - - '0x0' - x-goog-api-client: - - cred-type/sa - x-upload-content-type: - - application/octet-stream - method: PUT - uri: https://storage.googleapis.com/upload/storage/v1/b/testing/o?uploadType=resumable&upload_id=ABPtcPrSstlUpHWiVP3qsSmJCuvrzD6y-bXGIhYtSC3ZPIGF06Kvd8AY3get8RYlxVwKJxa4xj2lQfKDQTg6OqFX0O5mjGnpPTTV-fXd2mAJYds1dg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"testing/test_write_then_read_file_obj/result/1701723910932884\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/testing/o/test_write_then_read_file_obj%2Fresult\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/testing/o/test_write_then_read_file_obj%2Fresult?generation=1701723910932884&alt=media\",\n - \ \"name\": \"test_write_then_read_file_obj/result\",\n \"bucket\": \"testing\",\n - \ \"generation\": \"1701723910932884\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"46\",\n \"md5Hash\": \"NwIf46EiCcnfaot9N+GaBQ==\",\n \"crc32c\": \"fChI7w==\",\n - \ \"etag\": \"CJST3snX9oIDEAE=\",\n \"retentionExpirationTime\": \"2024-03-06T21:05:10.971Z\",\n - \ \"timeCreated\": \"2023-12-04T21:05:10.971Z\",\n \"updated\": \"2023-12-04T21:05:10.971Z\",\n - \ \"timeStorageClassUpdated\": \"2023-12-04T21:05:10.971Z\"\n}\n" - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '984' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 04 Dec 2023 21:05:11 GMT - ETag: - - CJST3snX9oIDEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ABPtcPrSstlUpHWiVP3qsSmJCuvrzD6y-bXGIhYtSC3ZPIGF06Kvd8AY3get8RYlxVwKJxa4xj2lQfKDQTg6OqFX0O5mjGnpPTTV-fXd2mAJYds1dg - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.11.0 gl-python/3.9.16 grpc/1.59.0 gax/2.12.0 gccl/2.11.0 - x-allowed-locations: - - '0x0' - x-goog-api-client: - - cred-type/sa - method: GET - uri: https://storage.googleapis.com/storage/v1/b/testing/o/test_write_then_read_file_obj%2Fresult?prettyPrint=false&projection=noAcl - response: - body: - string: '{"kind":"storage#object","id":"testing/test_write_then_read_file_obj/result/1701723910932884","selfLink":"https://www.googleapis.com/storage/v1/b/testing/o/test_write_then_read_file_obj%2Fresult","mediaLink":"https://storage.googleapis.com/download/storage/v1/b/testing/o/test_write_then_read_file_obj%2Fresult?generation=1701723910932884&alt=media","name":"test_write_then_read_file_obj/result","bucket":"testing","generation":"1701723910932884","metageneration":"1","contentType":"application/octet-stream","storageClass":"STANDARD","size":"46","md5Hash":"NwIf46EiCcnfaot9N+GaBQ==","crc32c":"fChI7w==","etag":"CJST3snX9oIDEAE=","retentionExpirationTime":"2024-03-06T21:05:10.971Z","timeCreated":"2023-12-04T21:05:10.971Z","updated":"2023-12-04T21:05:10.971Z","timeStorageClassUpdated":"2023-12-04T21:05:10.971Z"}' - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '910' - Content-Type: - - application/json; charset=UTF-8 - Date: - - Mon, 04 Dec 2023 21:05:11 GMT - ETag: - - CJST3snX9oIDEAE= - Expires: - - Mon, 04 Dec 2023 21:05:11 GMT - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ABPtcPovRYPcp8lo-jxn4gVQAR5H0WJGrbXXhIDK5kLJszvypIgY0Aqn-Ko1BEvtPOXuT2jT_XpNWqrDgg - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Connection: - - keep-alive - User-Agent: - - gcloud-python/2.11.0 gl-python/3.9.16 grpc/1.59.0 gax/2.12.0 gccl/2.11.0 - accept-encoding: - - gzip - content-type: - - application/json; charset=UTF-8 - x-allowed-locations: - - '0x0' - x-goog-api-client: - - cred-type/sa - x-upload-content-type: - - application/json; charset=UTF-8 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/testing/o/test_write_then_read_file_obj%2Fresult?alt=media&generation=1701723910932884 - response: - body: - string: "lorem ipsum dolor test_write_then_read_file \xE1" - headers: - Alt-Svc: - - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '46' - Content-Type: - - application/octet-stream - Date: - - Mon, 04 Dec 2023 21:05:11 GMT - ETag: - - CJST3snX9oIDEAE= - Expires: - - Mon, 01 Jan 1990 00:00:00 GMT - Last-Modified: - - Mon, 04 Dec 2023 21:05:10 GMT - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-GUploader-UploadID: - - ABPtcPqVlfY3E9TmoOUzr-js-vq95dhg11CdKNCnTv3Mx7xbqZ-z2wsJ_qr4iJjAimv4vCV_OQvp_DFhqg - X-Goog-Generation: - - '1701723910932884' - X-Goog-Hash: - - crc32c=fChI7w==,md5=NwIf46EiCcnfaot9N+GaBQ== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - X-Goog-Stored-Content-Encoding: - - identity - X-Goog-Stored-Content-Length: - - '46' - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_create_bucket.yaml b/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_create_bucket.yaml deleted file mode 100644 index 1f8e45dc4..000000000 --- a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_create_bucket.yaml +++ /dev/null @@ -1,125 +0,0 @@ -interactions: -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/archivetest - response: - body: - string: ' - - NoSuchBucketThe specified bucket does not existarchivetest/archivetest1748FD4C94D7A0F83db02b4e-899f-4daa-a9d3-fea142b68ee9' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C94D7A0F8 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 404 - message: Not Found -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: PUT - uri: http://minio:9000/archivetest - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Length: - - '0' - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Location: - - /archivetest - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C956F8F80 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: '{"Statement": [{"Action": ["s3:GetObject"], "Effect": "Allow", "Principal": - {"AWS": ["*"]}, "Resource": ["arn:aws:s3:::archivetest/*"]}], "Version": "2012-10-17"}' - headers: - Content-Length: - - '162' - Content-MD5: - - RwFjKcistI7UvHORW0EYwg== - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - a20040fe517efd9d77074313a7033df79d96583606f2f3cf794c5d6e412c447a - x-amz-date: - - 20230303T184926Z - method: PUT - uri: http://minio:9000/archivetest - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C95FC9128 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 204 - message: No Content -version: 1 diff --git a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_create_bucket_already_exists.yaml b/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_create_bucket_already_exists.yaml deleted file mode 100644 index 34d98df5e..000000000 --- a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_create_bucket_already_exists.yaml +++ /dev/null @@ -1,161 +0,0 @@ -interactions: -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/alreadyexists - response: - body: - string: ' - - NoSuchBucketThe specified bucket does not existalreadyexists/alreadyexists1748FD4C971655F83db02b4e-899f-4daa-a9d3-fea142b68ee9' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C971655F8 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 404 - message: Not Found -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: PUT - uri: http://minio:9000/alreadyexists - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Length: - - '0' - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Location: - - /alreadyexists - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C97757D58 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: '{"Statement": [{"Action": ["s3:GetObject"], "Effect": "Allow", "Principal": - {"AWS": ["*"]}, "Resource": ["arn:aws:s3:::alreadyexists/*"]}], "Version": "2012-10-17"}' - headers: - Content-Length: - - '164' - Content-MD5: - - wMVEpPwi61YITdnCWLfNjA== - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - d3f24d69aa644d958b232c0200b1f7f02d06852b29839cb3ffc1c1163c10f75b - x-amz-date: - - 20230303T184926Z - method: PUT - uri: http://minio:9000/alreadyexists - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C97D2C058 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 204 - message: No Content -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: HEAD - uri: http://minio:9000/alreadyexists - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C98215D58 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_delete_file_doesnt_exist.yaml b/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_delete_file_doesnt_exist.yaml deleted file mode 100644 index 4fb9e05a9..000000000 --- a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_delete_file_doesnt_exist.yaml +++ /dev/null @@ -1,80 +0,0 @@ -interactions: -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/archivetest - response: - body: - string: ' - - ' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C9F6CE348 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: DELETE - uri: http://minio:9000/archivetest/test_delete_file_doesnt_exist/result.txt - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C9FA1C658 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 204 - message: No Content -version: 1 diff --git a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_read_file_does_not_exist.yaml b/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_read_file_does_not_exist.yaml deleted file mode 100644 index 83b2d5f3d..000000000 --- a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_read_file_does_not_exist.yaml +++ /dev/null @@ -1,86 +0,0 @@ -interactions: -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/archivetest - response: - body: - string: ' - - ' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C9D1CF038 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/archivetest/test_read_file_does_not_exist/does_not_exist.txt - response: - body: - string: ' - - NoSuchKeyThe specified key does not exist.test_read_file_does_not_exist/does_not_exist.txtarchivetest/archivetest/test_read_file_does_not_exist/does_not_exist.txt1748FD4C9D5E00783db02b4e-899f-4daa-a9d3-fea142b68ee9' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C9D5E0078 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 404 - message: Not Found -version: 1 diff --git a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_delete_file.yaml b/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_delete_file.yaml deleted file mode 100644 index b190963d3..000000000 --- a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_delete_file.yaml +++ /dev/null @@ -1,170 +0,0 @@ -interactions: -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/archivetest - response: - body: - string: ' - - ' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C9E19AB70 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: !!binary | - H4sIADZBAmQC/8vJL0rNVcgsKC7NVUjJz8kvUihJLS6JLy/KLEmNL8lIzYsvSk1MiU/LzElVOLwQ - ABQu+7guAAAA - headers: - Content-Encoding: - - gzip - Content-Length: - - '66' - Content-Type: - - text/plain - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - 576f9547d514d18ba635cada9a5436c328452318373bee43ee3fc3872a3592dc - x-amz-date: - - 20230303T184926Z - method: PUT - uri: http://minio:9000/archivetest/test_write_then_delete_file/result.txt - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Length: - - '0' - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - ETag: - - '"1e07eb1e057b4fa3be7795787edc06be"' - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C9E4E05C8 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: DELETE - uri: http://minio:9000/archivetest/test_write_then_delete_file/result.txt - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C9EA3BB30 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 204 - message: No Content -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/archivetest/test_write_then_delete_file/result.txt - response: - body: - string: ' - - NoSuchKeyThe specified key does not exist.test_write_then_delete_file/result.txtarchivetest/archivetest/test_write_then_delete_file/result.txt1748FD4C9ED85FC03db02b4e-899f-4daa-a9d3-fea142b68ee9' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C9ED85FC0 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 404 - message: Not Found -version: 1 diff --git a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_read_file.yaml b/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_read_file.yaml deleted file mode 100644 index 119ce5a49..000000000 --- a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_read_file.yaml +++ /dev/null @@ -1,140 +0,0 @@ -interactions: -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/archivetest - response: - body: - string: ' - - ' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C98CD7FC0 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: !!binary | - H4sIADZBAmQC/8vJL0rNVcgsKC7NVUjJz8kvUihJLS6JLy/KLEmNL8lIzYsvSk1MiU/LzElVOLwQ - ABQu+7guAAAA - headers: - Content-Encoding: - - gzip - Content-Length: - - '66' - Content-Type: - - text/plain - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - 576f9547d514d18ba635cada9a5436c328452318373bee43ee3fc3872a3592dc - x-amz-date: - - 20230303T184926Z - method: PUT - uri: http://minio:9000/archivetest/test_write_then_read_file/result - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Length: - - '0' - Content-Security-Policy: - - block-all-mixed-content - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - ETag: - - '"1e07eb1e057b4fa3be7795787edc06be"' - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C991765B8 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.13 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20230303T184926Z - method: GET - uri: http://minio:9000/archivetest/test_write_then_read_file/result - response: - body: - string: !!binary | - H4sIADZBAmQC/8vJL0rNVcgsKC7NVUjJz8kvUihJLS6JLy/KLEmNL8lIzYsvSk1MiU/LzElVOLwQ - ABQu+7guAAAA - headers: - Accept-Ranges: - - bytes - Content-Encoding: - - gzip - Content-Length: - - '66' - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - text/plain - Date: - - Fri, 03 Mar 2023 18:49:26 GMT - ETag: - - '"1e07eb1e057b4fa3be7795787edc06be"' - Last-Modified: - - Fri, 03 Mar 2023 18:49:26 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 1748FD4C996BA038 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_read_file_obj.yaml b/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_read_file_obj.yaml deleted file mode 100644 index 55be5cb62..000000000 --- a/tests/unit/storage/cassetes/test_minio/TestMinioStorageService/test_write_then_read_file_obj.yaml +++ /dev/null @@ -1,140 +0,0 @@ -interactions: -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.17 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20231127T174559Z - method: GET - uri: http://minio:9000/archivetest - response: - body: - string: ' - - ' - headers: - Accept-Ranges: - - bytes - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - application/xml - Date: - - Mon, 27 Nov 2023 17:45:59 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Transfer-Encoding: - - chunked - Vary: - - Origin - X-Amz-Request-Id: - - 179B8BF2CA2E0FA8 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: !!binary | - H4sICNfVZGUC/3RtcGx0ZGZfczRuAMvJL0rNVcgsKC7NVUjJz8kvUihJLS6JLy/KLEmNL8lIzYsv - Sk1MiU/LzElVOLwQABQu+7guAAAA - headers: - Content-Encoding: - - gzip - Content-Length: - - '78' - Content-Type: - - text/plain - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.17 - x-amz-content-sha256: - - c86fad2423c5df8e776df1dec71483bd284d536c313ecc7d1982cc0fa824fc7d - x-amz-date: - - 20231127T174559Z - method: PUT - uri: http://minio:9000/archivetest/test_write_then_read_file/result - response: - body: - string: '' - headers: - Accept-Ranges: - - bytes - Content-Length: - - '0' - Content-Security-Policy: - - block-all-mixed-content - Date: - - Mon, 27 Nov 2023 17:45:59 GMT - ETag: - - '"3ce641b98515e97b7c35610829b224b0"' - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 179B8BF2CA849418 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Host: - - minio:9000 - User-Agent: - - MinIO (Darwin; arm64) minio-py/7.1.17 - x-amz-content-sha256: - - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - x-amz-date: - - 20231127T174559Z - method: GET - uri: http://minio:9000/archivetest/test_write_then_read_file/result - response: - body: - string: !!binary | - H4sICNfVZGUC/3RtcGx0ZGZfczRuAMvJL0rNVcgsKC7NVUjJz8kvUihJLS6JLy/KLEmNL8lIzYsv - Sk1MiU/LzElVOLwQABQu+7guAAAA - headers: - Accept-Ranges: - - bytes - Content-Encoding: - - gzip - Content-Length: - - '78' - Content-Security-Policy: - - block-all-mixed-content - Content-Type: - - text/plain - Date: - - Mon, 27 Nov 2023 17:45:59 GMT - ETag: - - '"3ce641b98515e97b7c35610829b224b0"' - Last-Modified: - - Mon, 27 Nov 2023 17:45:59 GMT - Server: - - Minio/RELEASE.2019-04-09T01-22-30Z - Vary: - - Origin - X-Amz-Request-Id: - - 179B8BF2CAEC3B40 - X-Minio-Deployment-Id: - - 3db02b4e-899f-4daa-a9d3-fea142b68ee9 - X-Xss-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/tests/unit/storage/test_aws.py b/tests/unit/storage/test_aws.py deleted file mode 100644 index e8651334f..000000000 --- a/tests/unit/storage/test_aws.py +++ /dev/null @@ -1,96 +0,0 @@ -import gzip -from io import BytesIO - -import pytest - -from shared.storage.aws import AWSStorageService -from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError -from tests.base import BaseTestCase - -aws_config = { - "resource": "s3", - "aws_access_key_id": "testv5u6c7xxo7pom09w", - "aws_secret_access_key": "aaaaaaibbbaaaaaaaaa1aaaEHaaaQbbboc7mpaaa", - "region_name": "us-east-1", -} - - -class TestAWSStorageService(BaseTestCase): - def test_create_bucket(self, codecov_vcr): - storage = AWSStorageService(aws_config) - bucket_name = "felipearchivetest" - res = storage.create_root_storage(bucket_name=bucket_name) - assert res["name"] == "felipearchivetest" - - def test_create_bucket_at_region(self, codecov_vcr): - storage = AWSStorageService(aws_config) - bucket_name = "felipearchivetestw" - res = storage.create_root_storage(bucket_name=bucket_name, region="us-west-1") - assert res["name"] == "felipearchivetestw" - - def test_create_bucket_already_exists(self, codecov_vcr): - storage = AWSStorageService(aws_config) - bucket_name = "felipearchivetest" - with pytest.raises(BucketAlreadyExistsError): - storage.create_root_storage(bucket_name=bucket_name) - - def test_create_bucket_already_exists_at_region(self, codecov_vcr): - storage = AWSStorageService(aws_config) - bucket_name = "felipearchivetestw" - with pytest.raises(BucketAlreadyExistsError): - storage.create_root_storage(bucket_name=bucket_name, region="us-west-1") - - def test_write_then_read_file(self, codecov_vcr): - storage = AWSStorageService(aws_config) - path = "test_write_then_read_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "felipearchivetest" - writing_result = storage.write_file( - bucket_name=bucket_name, path=path, data=data - ) - assert writing_result - reading_result = storage.read_file(bucket_name=bucket_name, path=path) - assert reading_result.decode() == data - - def test_write_then_read_gzipped_file(self, codecov_vcr): - storage = AWSStorageService(aws_config) - path = "test_write_then_read_gzipped_file/result" - data = "lorem ipsum dolor test_write_then_read_gzipped_file á" - bucket_name = "felipearchivetest" - out = BytesIO() - with gzip.GzipFile(fileobj=out, mode="w", compresslevel=9) as gz: - encoded_data = data.encode() - gz.write(encoded_data) - data_to_write = out.getvalue() - writing_result = storage.write_file( - bucket_name=bucket_name, path=path, data=data_to_write - ) - assert writing_result - reading_result = storage.read_file(bucket_name=bucket_name, path=path) - assert reading_result.decode() == data - - def test_write_then_read_reduced_redundancy_file(self, codecov_vcr): - storage = AWSStorageService(aws_config) - path = "test_write_then_read_reduced_redundancy_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "felipearchivetest" - writing_result = storage.write_file( - bucket_name=bucket_name, path=path, data=data, reduced_redundancy=True - ) - assert writing_result - reading_result = storage.read_file(bucket_name=bucket_name, path=path) - assert reading_result.decode() == data - - def test_delete_file(self, codecov_vcr): - storage = AWSStorageService(aws_config) - path = "test_delete_file/result2" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "felipearchivetest" - writing_result = storage.write_file( - bucket_name=bucket_name, path=path, data=data - ) - assert writing_result - delete_result = storage.delete_file(bucket_name=bucket_name, path=path) - assert delete_result - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name=bucket_name, path=path) diff --git a/tests/unit/storage/test_fallback.py b/tests/unit/storage/test_fallback.py deleted file mode 100644 index 50399e764..000000000 --- a/tests/unit/storage/test_fallback.py +++ /dev/null @@ -1,141 +0,0 @@ -import pytest - -from shared.storage.aws import AWSStorageService -from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError -from shared.storage.fallback import StorageWithFallbackService -from shared.storage.gcp import GCPStorageService -from tests.base import BaseTestCase - -# DONT WORRY, this is generated for the purposes of validation, and is not the real -# one on which the code ran -fake_private_key = """-----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCnND/Neha4aNJ6 -YqMFFeYvjO+ZS2v0v2UQJajN02dOsquWq6lldpXi6NlbV9PMEfn7YuycxbWf92vk -kzcqtODW4xq8lC+DjWPbcrTQltzAyedRYX9q7xoF9WrTaW2feNIOk5fnwrZRiL3z -bwK3R53DzK3v6MQbl9XGQgKHppKDPi04XiwtVKhU1Ej8keoaG+iWALKM17UR4a2w -jBMdJYvnMNNJm8Rw+/sNOLWm/5M0v0BBIOVxr5M1VE5JoIMeeB7nwc+sxmxYj7I3 -W8Xv7VpLtUNDZ3ir6tQk+G1sPtaHSJBlYmkfK/WOcKxNIB9OmUXVz1E407Sl/EwH -EYFuULF9AgMBAAECggEABPyLbJLYC57grBK1/uhUyZU/7gfwS8fLeUxOOPk1iwTM -Fj2/Ww3K0Y4VMWKwp9Tfai5clR5WWNN1rcbwLb9gNzhlqzsWIau9TyWgG9pr8fnz -gptQQ/2mfof/rBdoVAmz5ghjzt8hNdRIqfJlF9c0bsrzYwTDmHkSQIvmbGo801oi -Z6RbPATA4EhZMNGb6iXptCe/F9rX0+SV2WbBtWTIbi0wtMRNQNqM11MggoVaYGNR -/hsNuJtCN2qTeKtw8P+Kx2Kqxa0BbTy7ltC64h0S1huW/7wEFtT4ttBGO+gh8vkQ -zlrm8xS02rBeJNVSUpjLN5TpL1KrqT9vlY2/UQ6j5wKBgQDr8/U9N2CC8bwEz+94 -fSKRbMAlvFx1Dx4JhxprV3i5o7L0oQ/nj8jPcRInF1lCh83iZbwMMKJcERUwST/A -fdsnE07QuLOCUDuTcf4m+iELrQVFyl5dxG6bvxWu3+8+vChVKyU8/ntlmP4Y6cKJ -hs2xkwIFRnr48vOcTT1YGyZyNwKBgQC1aPwKOI76WwKXt7IhfEBqmktSxu2jEOvi -xZ+dZ7K9DNt4XmkmiRODYf/wg7+bkH6UF6N6y/VVs9PcBV3dOWc65qmYBhza8CRV -13bwg/t3ZXV+YULCYb813z1xDMEKUkuMk4o2zgVhV/sUHW1IQEgIyKWCZ1ScA0/U -mRsanYBv6wKBgANYPPS2MT8J8DFdRTa/B1tqYDrotaLPKQzXhm9ZGRQAlwvSsKgG -qMEQCELXmONRi4CXEphVpCeL8nHxx96RqiaepnJc++Zv/rgzWHfy+b7xn+6CVN4d -Z7f7eHI3KGwKPMQgTXHU5ajmB0wRHDnY2FeZDuFGQ33966gejC0QjXX3AoGBAIGP -EfnmvM42M1rReamKiKLZwRPEOLFuA1l41G7hQXjc9t03aBd6bHI3ikdmgHCEuLHh -VAL+KR/lB1iqiIfXWE9rrxGAxBjkyr533F0XlX+G+Wuh4MDceGfsIIBdoHxTm9sw -/9P2PUdxQ0LxZTvllMyZKANC8t1dTCVEl2PhunmzAoGBAM9upD3S7H7cOQq8nDpj -SrSB1MWd+4xuWy0Ik22WF4yWNQLx396g5oZaIBPzQjeiddt9OijaPYpXDDhXehib -nNHY8NwDM/i9kXrl4l5TXg6j7GWBgqYGramhKPior1+Szfw9QNlBUC5E2GZkf3DZ -hUVr40ZOOnf1HpBc2um+6DAj ------END PRIVATE KEY----- -""" - -gcp_config = { - "type": "service_account", - "project_id": "genuine-polymer-165712", - "private_key_id": "e0098875a6be7fd0fb8d5b5efd6b6f662eff7295", - "private_key": fake_private_key, - "client_email": "codecov-marketing-deployment@genuine-polymer-165712.iam.gserviceaccount.com", - "client_id": "109377049763026714378", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/codecov-marketing-deployment%40genuine-polymer-165712.iam.gserviceaccount.com", -} - - -aws_config = { - "resource": "s3", - "aws_access_key_id": "testrobl3cz4i1to1noa", - "aws_secret_access_key": "vMTpbJX/vMTpbJX", - "region_name": "us-east-1", -} - - -@pytest.fixture() -def storage_service(): - gcp_storage = GCPStorageService(gcp_config) - aws_storage = AWSStorageService(aws_config) - return StorageWithFallbackService(gcp_storage, aws_storage) - - -class TestFallbackStorageService(BaseTestCase): - def test_create_bucket(self, codecov_vcr, storage_service): - storage = storage_service - bucket_name = "testingarchive20190210001" - res = storage.create_root_storage(bucket_name) - assert res["name"] == "testingarchive20190210001" - - def test_create_bucket_already_exists(self, codecov_vcr, storage_service): - storage = storage_service - bucket_name = "testingarchive20190210001" - with pytest.raises(BucketAlreadyExistsError): - storage.create_root_storage(bucket_name) - - def test_write_then_read_file(self, codecov_vcr, storage_service): - storage = storage_service - path = "test_write_then_read_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "testingarchive20190210001" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - reading_result = storage.read_file(bucket_name, path) - assert reading_result.decode() == data - - def test_read_file_does_not_exist(self, request, codecov_vcr, storage_service): - storage = storage_service - path = f"{request.node.name}/does_not_exist.txt" - bucket_name = "testingarchive20190210001" - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name, path) - - def test_read_file_does_not_exist_on_first_but_exists_on_second( - self, request, codecov_vcr, storage_service - ): - storage = storage_service - path = f"{request.node.name}/does_not_exist_on_first_but_exists_on_second.txt" - bucket_name = "testingarchive20190210001" - storage_service.fallback_service.write_file( - bucket_name, path, "some_data_over_there" - ) - reading_result = storage.read_file(bucket_name, path) - assert reading_result.decode() == "some_data_over_there" - - def test_read_file_does_exist_on_first_but_not_exists_on_second( - self, request, codecov_vcr, storage_service - ): - storage = storage_service - path = f"{request.node.name}/does_exist_on_first_but_not_exists_on_second.txt" - bucket_name = "testingarchive20190210001" - storage_service.main_service.write_file( - bucket_name, path, "some_different_data" - ) - reading_result = storage.read_file(bucket_name, path) - assert reading_result.decode() == "some_different_data" - - def test_write_then_delete_file(self, request, codecov_vcr, storage_service): - storage = storage_service - path = f"{request.node.name}/result.txt" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "testingarchive20190210001" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - deletion_result = storage.delete_file(bucket_name, path) - assert deletion_result is True - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name, path) - - def test_delete_file_doesnt_exist(self, request, codecov_vcr, storage_service): - storage = storage_service - path = f"{request.node.name}/result.txt" - bucket_name = "testingarchive20190210001" - with pytest.raises(FileNotInStorageError): - storage.delete_file(bucket_name, path) diff --git a/tests/unit/storage/test_gcp.py b/tests/unit/storage/test_gcp.py deleted file mode 100644 index 31a4b52d9..000000000 --- a/tests/unit/storage/test_gcp.py +++ /dev/null @@ -1,200 +0,0 @@ -import gzip -import io -import tempfile -from unittest.mock import MagicMock, patch - -import pytest -from google.cloud import storage as google_storage -from google.resumable_media.common import DataCorruption - -from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError -from shared.storage.gcp import GCPStorageService -from tests.base import BaseTestCase - -# DONT WORRY, this is generated for the purposes of validation, and is not the real -# one on which the code ran -fake_private_key = """-----BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDCFqq2ygFh9UQU/6PoDJ6L9e4ovLPCHtlBt7vzDwyfwr3XGxln -0VbfycVLc6unJDVEGZ/PsFEuS9j1QmBTTEgvCLR6RGpfzmVuMO8wGVEO52pH73h9 -rviojaheX/u3ZqaA0di9RKy8e3L+T0ka3QYgDx5wiOIUu1wGXCs6PhrtEwICBAEC -gYBu9jsi0eVROozSz5dmcZxUAzv7USiUcYrxX007SUpm0zzUY+kPpWLeWWEPaddF -VONCp//0XU8hNhoh0gedw7ZgUTG6jYVOdGlaV95LhgY6yXaQGoKSQNNTY+ZZVT61 -zvHOlPynt3GZcaRJOlgf+3hBF5MCRoWKf+lDA5KiWkqOYQJBAMQp0HNVeTqz+E0O -6E0neqQDQb95thFmmCI7Kgg4PvkS5mz7iAbZa5pab3VuyfmvnVvYLWejOwuYSp0U -9N8QvUsCQQD9StWHaVNM4Lf5zJnB1+lJPTXQsmsuzWvF3HmBkMHYWdy84N/TdCZX -Cxve1LR37lM/Vijer0K77wAx2RAN/ppZAkB8+GwSh5+mxZKydyPaPN29p6nC6aLx -3DV2dpzmhD0ZDwmuk8GN+qc0YRNOzzJ/2UbHH9L/lvGqui8I6WLOi8nDAkEA9CYq -ewfdZ9LcytGz7QwPEeWVhvpm0HQV9moetFWVolYecqBP4QzNyokVnpeUOqhIQAwe -Z0FJEQ9VWsG+Df0noQJBALFjUUZEtv4x31gMlV24oiSWHxIRX4fEND/6LpjleDZ5 -C/tY+lZIEO1Gg/FxSMB+hwwhwfSuE3WohZfEcSy+R48= ------END RSA PRIVATE KEY-----""" - -gcp_config = { - "type": "service_account", - "project_id": "genuine-polymer-165712", - "private_key_id": "testu7gvpfyaasze2lboblawjb3032mbfisy9gpg", - "private_key": fake_private_key, - "client_email": "localstoragetester@genuine-polymer-165712.iam.gserviceaccount.com", - "client_id": "110927033630051704865", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/localstoragetester%40genuine-polymer-165712.iam.gserviceaccount.com", -} - - -class TestGCPStorateService(BaseTestCase): - def test_create_bucket(self, codecov_vcr): - storage = GCPStorageService(gcp_config) - bucket_name = "testingarchive004" - res = storage.create_root_storage(bucket_name) - assert res["name"] == "testingarchive004" - - def test_create_bucket_already_exists(self, codecov_vcr): - storage = GCPStorageService(gcp_config) - bucket_name = "testingarchive004" - with pytest.raises(BucketAlreadyExistsError): - storage.create_root_storage(bucket_name) - - def test_write_then_read_file(self, codecov_vcr): - storage = GCPStorageService(gcp_config) - path = "test_write_then_read_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "testingarchive02" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - reading_result = storage.read_file(bucket_name, path) - assert reading_result.decode() == data - - def test_write_then_read_file_obj(self, codecov_vcr): - storage = GCPStorageService(gcp_config) - path = "test_write_then_read_file_obj/result" - data = "lorem ipsum dolor test_write_then_read_file á" - _, local_path = tempfile.mkstemp() - with open(local_path, "w") as f: - f.write(data) - f = open(local_path, "rb") - bucket_name = "testing" - writing_result = storage.write_file(bucket_name, path, f) - assert writing_result - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(bucket_name, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == data - - def test_manually_then_read_then_write_then_read_file(self, codecov_vcr): - bucket_name = "testingarchive02" - path = "test_manually_then_read_then_write_then_read_file/result01" - storage = GCPStorageService(gcp_config) - blob = storage.get_blob(bucket_name, path) - blob.upload_from_string("some data around") - assert storage.read_file(bucket_name, path).decode() == "some data around" - blob.reload() - assert blob.content_type == "text/plain" - assert blob.content_encoding is None - data = "lorem ipsum dolor test_write_then_read_file á" - assert storage.write_file(bucket_name, path, data) - assert storage.read_file(bucket_name, path).decode() == data - blob = storage.get_blob(bucket_name, path) - blob.reload() - assert blob.content_type == "text/plain" - assert blob.content_encoding == "gzip" - - def test_write_then_read_file_gzipped(self, codecov_vcr): - storage = GCPStorageService(gcp_config) - path = "test_write_then_read_file/result" - data = gzip.compress("lorem ipsum dolor test_write_then_read_file á".encode()) - bucket_name = "testingarchive02" - writing_result = storage.write_file( - bucket_name, path, data, is_already_gzipped=True - ) - assert writing_result - reading_result = storage.read_file(bucket_name, path) - assert ( - reading_result.decode() == "lorem ipsum dolor test_write_then_read_file á" - ) - - def test_read_file_does_not_exist(self, request, codecov_vcr): - storage = GCPStorageService(gcp_config) - path = f"{request.node.name}/does_not_exist.txt" - bucket_name = "testingarchive004" - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name, path) - - def test_read_file_application_gzip(self, request, codecov_vcr): - storage = GCPStorageService(gcp_config) - path = "gzipped_file/test_006.txt" - bucket_name = "testingarchive004" - content_to_upload = "content to write\nThis is crazy\nWhy does this work" - bucket = storage.storage_client.get_bucket(bucket_name) - blob = google_storage.Blob(path, bucket) - with io.BytesIO() as f: - with gzip.GzipFile(fileobj=f, mode="wb", compresslevel=9) as fgz: - fgz.write(content_to_upload.encode()) - blob.content_encoding = "gzip" - blob.upload_from_file( - f, size=f.tell(), rewind=True, content_type="application/x-gzip" - ) - content = storage.read_file(bucket_name, path) - assert content.decode() == content_to_upload - - def test_write_then_delete_file(self, request, codecov_vcr): - storage = GCPStorageService(gcp_config) - path = f"{request.node.name}/result.txt" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "testingarchive02" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - deletion_result = storage.delete_file(bucket_name, path) - assert deletion_result is True - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name, path) - - def test_delete_file_doesnt_exist(self, request, codecov_vcr): - storage = GCPStorageService(gcp_config) - path = f"{request.node.name}/result.txt" - bucket_name = "testingarchive004" - with pytest.raises(FileNotInStorageError): - storage.delete_file(bucket_name, path) - - @patch("shared.storage.gcp.storage") - def test_read_file_retry_success(self, mock_storage, mocker): - mock_blob = MagicMock( - name="fake_blob", - download_as_bytes=MagicMock( - side_effect=[ - DataCorruption(response="checksum match failed"), - b"contents", - ] - ), - ) - mocker.patch( - "shared.storage.gcp.GCPStorageService.get_blob", return_value=mock_blob - ) - - storage = GCPStorageService(gcp_config) - mock_storage.Client.assert_called() - response = storage.read_file("root_bucket", "path/to/blob", None) - assert response == b"contents" - - @patch("shared.storage.gcp.storage") - def test_read_file_retry_fail_twice(self, mock_storage, mocker): - mock_blob = MagicMock( - name="fake_blob", - download_as_bytes=MagicMock( - side_effect=[ - DataCorruption(response="checksum match failed"), - DataCorruption(response="checksum match failed"), - ] - ), - ) - mocker.patch( - "shared.storage.gcp.GCPStorageService.get_blob", return_value=mock_blob - ) - - storage = GCPStorageService(gcp_config) - mock_storage.Client.assert_called() - with pytest.raises(DataCorruption): - storage.read_file("root_bucket", "path/to/blob", None) diff --git a/tests/unit/storage/test_memory.py b/tests/unit/storage/test_memory.py index f96f68e53..cdef08fb8 100644 --- a/tests/unit/storage/test_memory.py +++ b/tests/unit/storage/test_memory.py @@ -1,84 +1,100 @@ import tempfile +from uuid import uuid4 import pytest from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError from shared.storage.memory import MemoryStorageService -from tests.base import BaseTestCase - -minio_config = { - "access_key_id": "codecov-default-key", - "secret_access_key": "codecov-default-secret", - "verify_ssl": False, - "host": "minio", - "port": "9000", -} - - -class TestMemoryStorageService(BaseTestCase): - def test_create_bucket(self, codecov_vcr): - storage = MemoryStorageService(minio_config) - bucket_name = "thiagoarchivetest" - res = storage.create_root_storage(bucket_name, region="") - assert res == {"name": "thiagoarchivetest"} - - def test_create_bucket_already_exists(self, codecov_vcr): - storage = MemoryStorageService(minio_config) - bucket_name = "alreadyexists" - storage.root_storage_created = True - with pytest.raises(BucketAlreadyExistsError): - storage.create_root_storage(bucket_name) - - def test_write_then_read_file(self, codecov_vcr): - storage = MemoryStorageService(minio_config) - path = "test_write_then_read_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "thiagoarchivetest" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - reading_result = storage.read_file(bucket_name, path) - assert reading_result.decode() == data - - def test_write_then_read_file_obj(self, codecov_vcr): - storage = MemoryStorageService(minio_config) - path = "test_write_then_read_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - _, local_path = tempfile.mkstemp() - with open(local_path, "w") as f: - f.write(data) - f = open(local_path, "rb") - bucket_name = "archivetest" - writing_result = storage.write_file(bucket_name, path, f) - assert writing_result - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(bucket_name, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == data - - def test_read_file_does_not_exist(self, request, codecov_vcr): - storage = MemoryStorageService(minio_config) - path = f"{request.node.name}/does_not_exist.txt" - bucket_name = "thiagoarchivetest" - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name, path) - - def test_write_then_delete_file(self, request, codecov_vcr): - storage = MemoryStorageService(minio_config) - path = f"{request.node.name}/result.txt" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "thiagoarchivetest" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - deletion_result = storage.delete_file(bucket_name, path) - assert deletion_result is True - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name, path) - - def test_delete_file_doesnt_exist(self, request, codecov_vcr): - storage = MemoryStorageService(minio_config) - path = f"{request.node.name}/result.txt" - bucket_name = "thiagoarchivetest" - with pytest.raises(FileNotInStorageError): - storage.delete_file(bucket_name, path) + +BUCKET_NAME = "archivetest" + + +def make_storage() -> MemoryStorageService: + return MemoryStorageService({}) + + +def ensure_bucket(storage: MemoryStorageService): + pass + + +def test_create_bucket(): + storage = make_storage() + bucket_name = uuid4().hex + + res = storage.create_root_storage(bucket_name, region="") + assert res == {"name": bucket_name} + + +def test_create_bucket_already_exists(): + storage = make_storage() + bucket_name = uuid4().hex + + storage.create_root_storage(bucket_name) + with pytest.raises(BucketAlreadyExistsError): + storage.create_root_storage(bucket_name) + + +def test_write_then_read_file(): + storage = make_storage() + path = f"test_write_then_read_file/{uuid4().hex}" + data = "lorem ipsum dolor test_write_then_read_file á" + + ensure_bucket(storage) + writing_result = storage.write_file(BUCKET_NAME, path, data) + assert writing_result + reading_result = storage.read_file(BUCKET_NAME, path) + assert reading_result.decode() == data + + +def test_write_then_read_file_obj(): + storage = make_storage() + path = f"test_write_then_read_file_obj/{uuid4().hex}" + data = "lorem ipsum dolor test_write_then_read_file_obj á" + + ensure_bucket(storage) + + _, local_path = tempfile.mkstemp() + with open(local_path, "w") as f: + f.write(data) + with open(local_path, "rb") as f: + writing_result = storage.write_file(BUCKET_NAME, path, f) + assert writing_result + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + storage.read_file(BUCKET_NAME, path, file_obj=f) + with open(local_path, "rb") as f: + assert f.read().decode() == data + + +def test_read_file_does_not_exist(): + storage = make_storage() + path = f"test_read_file_does_not_exist/{uuid4().hex}" + + ensure_bucket(storage) + with pytest.raises(FileNotInStorageError): + storage.read_file(BUCKET_NAME, path) + + +def test_write_then_delete_file(): + storage = make_storage() + path = f"test_write_then_delete_file/{uuid4().hex}" + data = "lorem ipsum dolor test_write_then_delete_file á" + + ensure_bucket(storage) + writing_result = storage.write_file(BUCKET_NAME, path, data) + assert writing_result + + deletion_result = storage.delete_file(BUCKET_NAME, path) + assert deletion_result is True + with pytest.raises(FileNotInStorageError): + storage.read_file(BUCKET_NAME, path) + + +def test_delete_file_doesnt_exist(): + storage = make_storage() + path = f"test_delete_file_doesnt_exist/{uuid4().hex}" + + ensure_bucket(storage) + with pytest.raises(FileNotInStorageError): + storage.delete_file(BUCKET_NAME, path) diff --git a/tests/unit/storage/test_minio.py b/tests/unit/storage/test_minio.py index b4c7a5b8a..0c604ffd5 100644 --- a/tests/unit/storage/test_minio.py +++ b/tests/unit/storage/test_minio.py @@ -1,164 +1,331 @@ -import os +import gzip import tempfile +from io import BytesIO +from uuid import uuid4 import pytest +import zstandard from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError -from shared.storage.minio import MinioStorageService -from tests.base import BaseTestCase - -minio_config = { - "access_key_id": "codecov-default-key", - "secret_access_key": "codecov-default-secret", - "verify_ssl": False, - "host": "minio", - "port": "9000", - "iam_auth": False, - "iam_endpoint": None, -} - - -class TestMinioStorageService(BaseTestCase): - def test_create_bucket(self, codecov_vcr): - storage = MinioStorageService(minio_config) - bucket_name = "archivetest" - res = storage.create_root_storage(bucket_name, region="") - assert res == {"name": "archivetest"} - - def test_create_bucket_already_exists(self, codecov_vcr): - storage = MinioStorageService(minio_config) - bucket_name = "alreadyexists" - storage.create_root_storage(bucket_name) - with pytest.raises(BucketAlreadyExistsError): - storage.create_root_storage(bucket_name) - - def test_write_then_read_file(self, codecov_vcr): - storage = MinioStorageService(minio_config) - path = "test_write_then_read_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "archivetest" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - reading_result = storage.read_file(bucket_name, path) - assert reading_result.decode() == data - - def test_write_then_read_file_obj(self, codecov_vcr): - storage = MinioStorageService(minio_config) - path = "test_write_then_read_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - _, local_path = tempfile.mkstemp() - with open(local_path, "w") as f: - f.write(data) - f = open(local_path, "rb") - bucket_name = "archivetest" - writing_result = storage.write_file(bucket_name, path, f) - assert writing_result - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(bucket_name, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == data - - def test_read_file_does_not_exist(self, request, codecov_vcr): - storage = MinioStorageService(minio_config) - path = f"{request.node.name}/does_not_exist.txt" - bucket_name = "archivetest" - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name, path) - - def test_write_then_delete_file(self, request, codecov_vcr): - storage = MinioStorageService(minio_config) - path = f"{request.node.name}/result.txt" - data = "lorem ipsum dolor test_write_then_read_file á" - bucket_name = "archivetest" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - deletion_result = storage.delete_file(bucket_name, path) - assert deletion_result is True - with pytest.raises(FileNotInStorageError): - storage.read_file(bucket_name, path) - - def test_delete_file_doesnt_exist(self, request, codecov_vcr): - storage = MinioStorageService(minio_config) - path = f"{request.node.name}/result.txt" - bucket_name = "archivetest" - storage.delete_file(bucket_name, path) - - """ - Since we cannot rely on `Chain` in the underlying implementation - we cannot ''trick'' minio into using the IAM auth flow while testing, - and therefore have to actually be running on an AWS instance. - We can unskip this test after minio fixes their credential - chain problem - """ - - @pytest.mark.skip(reason="Skipping because minio IAM is currently untestable.") - def test_minio_with_iam_flow(self, codecov_vcr, mocker): - mocker.patch.dict( - os.environ, - { - "MINIO_ACCESS_KEY": "codecov-default-key", - "MINIO_SECRET_KEY": "codecov-default-secret", - }, - ) - minio_iam_config = { +from shared.storage.minio import MinioStorageService, zstd_decoded_by_default + +BUCKET_NAME = "archivetest" + + +def test_zstd_by_default(): + assert not zstd_decoded_by_default() + + +def test_gzip_stream_compression(): + data = "lorem ipsum dolor test_write_then_read_file á" + + split_data = [data[i : i + 5] for i in range(0, len(data), 5)] + + compressed_pieces: list[bytes] = [ + gzip.compress(piece.encode()) for piece in split_data + ] + + assert gzip.decompress(b"".join(compressed_pieces)) == data.encode() + + +def make_storage() -> MinioStorageService: + return MinioStorageService( + { "access_key_id": "codecov-default-key", "secret_access_key": "codecov-default-secret", "verify_ssl": False, "host": "minio", "port": "9000", - "iam_auth": True, + "iam_auth": False, "iam_endpoint": None, } - bucket_name = "testminiowithiamflow" - storage = MinioStorageService(minio_iam_config) + ) + + +def ensure_bucket(storage: MinioStorageService): + try: + storage.create_root_storage(BUCKET_NAME) + except Exception: + pass + + +def test_create_bucket(): + storage = make_storage() + bucket_name = uuid4().hex + + res = storage.create_root_storage(bucket_name, region="") + assert res == {"name": bucket_name} + + +def test_create_bucket_already_exists(): + storage = make_storage() + bucket_name = uuid4().hex + + storage.create_root_storage(bucket_name) + with pytest.raises(BucketAlreadyExistsError): storage.create_root_storage(bucket_name) - path = "test_write_then_read_file/result" - data = "lorem ipsum dolor test_write_then_read_file á" - writing_result = storage.write_file(bucket_name, path, data) - assert writing_result - reading_result = storage.read_file(bucket_name, path) - assert reading_result.decode() == data - - def test_minio_without_ports(self): - minio_no_ports_config = { - "access_key_id": "hodor", - "secret_access_key": "haha", - "verify_ssl": False, - "host": "cute_url_no_ports", - "iam_auth": True, - "iam_endpoint": None, - } - storage = MinioStorageService(minio_no_ports_config) - assert storage.minio_config == minio_no_ports_config - assert storage.minio_client._base_url._url.port is None - - def test_minio_with_ports(self): - minio_no_ports_config = { - "access_key_id": "hodor", - "secret_access_key": "haha", - "verify_ssl": False, - "host": "cute_url_no_ports", - "port": "9000", - "iam_auth": True, - "iam_endpoint": None, - } - storage = MinioStorageService(minio_no_ports_config) - assert storage.minio_config == minio_no_ports_config - assert storage.minio_client._base_url.region is None - - def test_minio_with_region(self): - minio_no_ports_config = { - "access_key_id": "hodor", - "secret_access_key": "haha", - "verify_ssl": False, - "host": "cute_url_no_ports", - "port": "9000", - "iam_auth": True, - "iam_endpoint": None, - "region": "example", - } - storage = MinioStorageService(minio_no_ports_config) - assert storage.minio_config == minio_no_ports_config - assert storage.minio_client._base_url.region == "example" + + +def test_write_then_read_file(): + storage = make_storage() + path = f"test_write_then_read_file/{uuid4().hex}" + data = "lorem ipsum dolor test_write_then_read_file á" + + ensure_bucket(storage) + writing_result = storage.write_file(BUCKET_NAME, path, data) + assert writing_result + reading_result = storage.read_file(BUCKET_NAME, path) + assert reading_result.decode() == data + + +def test_write_then_read_file_already_gzipped(): + storage = make_storage() + path = f"test_write_then_read_file_already_gzipped/{uuid4().hex}" + data = BytesIO( + gzip.compress("lorem ipsum dolor test_write_then_read_file á".encode()) + ) + + ensure_bucket(storage) + writing_result = storage.write_file( + BUCKET_NAME, path, data, is_already_gzipped=True + ) + assert writing_result + reading_result = storage.read_file(BUCKET_NAME, path) + assert reading_result.decode() == "lorem ipsum dolor test_write_then_read_file á" + + +def test_write_then_read_file_already_zstd(): + storage = make_storage() + path = f"test_write_then_read_file_already_zstd/{uuid4().hex}" + data = BytesIO( + zstandard.compress("lorem ipsum dolor test_write_then_read_file á".encode()) + ) + + ensure_bucket(storage) + writing_result = storage.write_file( + BUCKET_NAME, path, data, compression_type="zstd", is_compressed=True + ) + assert writing_result + reading_result = storage.read_file(BUCKET_NAME, path) + assert reading_result.decode() == "lorem ipsum dolor test_write_then_read_file á" + + +def test_write_then_read_file_obj(): + storage = make_storage() + path = f"test_write_then_read_file/{uuid4().hex}" + data = "lorem ipsum dolor test_write_then_read_file á" + + ensure_bucket(storage) + + _, local_path = tempfile.mkstemp() + with open(local_path, "w") as f: + f.write(data) + with open(local_path, "rb") as f: + writing_result = storage.write_file(BUCKET_NAME, path, f) + assert writing_result + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + storage.read_file(BUCKET_NAME, path, file_obj=f) + with open(local_path, "rb") as f: + assert f.read().decode() == data + + +def test_write_then_read_file_obj_gzip(): + storage = make_storage() + path = f"test_write_then_read_file_gzip/{uuid4().hex}" + data = "lorem ipsum dolor test_write_then_read_file á" + + ensure_bucket(storage) + + _, local_path = tempfile.mkstemp() + with open(local_path, "w") as f: + f.write(data) + with open(local_path, "rb") as f: + writing_result = storage.write_file( + BUCKET_NAME, path, f, compression_type="gzip" + ) + assert writing_result + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + storage.read_file(BUCKET_NAME, path, file_obj=f) + with open(local_path, "rb") as f: + assert f.read().decode() == data + + +def test_write_then_read_file_obj_no_compression(): + storage = make_storage() + path = f"test_write_then_read_file_no_compression/{uuid4().hex}" + data = "lorem ipsum dolor test_write_then_read_file á" + + ensure_bucket(storage) + + _, local_path = tempfile.mkstemp() + with open(local_path, "w") as f: + f.write(data) + with open(local_path, "rb") as f: + writing_result = storage.write_file(BUCKET_NAME, path, f, compression_type=None) + assert writing_result + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + storage.read_file(BUCKET_NAME, path, file_obj=f) + with open(local_path, "rb") as f: + assert f.read().decode() == data + + +def test_write_then_read_file_obj_x_gzip(): + storage = make_storage() + path = f"test_write_then_read_file_obj_x_gzip/{uuid4().hex}" + compressed = gzip.compress("lorem ipsum dolor test_write_then_read_file á".encode()) + outsize = len(compressed) + data = BytesIO(compressed) + + ensure_bucket(storage) + + headers = {"Content-Encoding": "gzip"} + storage.minio_client.put_object( + BUCKET_NAME, + path, + data, + content_type="application/x-gzip", + metadata=headers, + length=outsize, + ) + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + storage.read_file(BUCKET_NAME, path, file_obj=f) + with open(local_path, "rb") as f: + assert f.read().decode() == "lorem ipsum dolor test_write_then_read_file á" + + +def test_write_then_read_file_obj_already_gzipped(): + storage = make_storage() + path = f"test_write_then_read_file_obj_already_gzipped/{uuid4().hex}" + data = BytesIO( + gzip.compress("lorem ipsum dolor test_write_then_read_file á".encode()) + ) + + ensure_bucket(storage) + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + f.write(data.getvalue()) + with open(local_path, "rb") as f: + writing_result = storage.write_file( + BUCKET_NAME, path, f, is_already_gzipped=True + ) + assert writing_result + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + storage.read_file(BUCKET_NAME, path, file_obj=f) + with open(local_path, "rb") as f: + assert f.read().decode() == "lorem ipsum dolor test_write_then_read_file á" + + +def test_write_then_read_file_obj_already_zstd(): + storage = make_storage() + path = f"test_write_then_read_file_obj_already_zstd/{uuid4().hex}" + data = BytesIO( + zstandard.compress("lorem ipsum dolor test_write_then_read_file á".encode()) + ) + + ensure_bucket(storage) + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + f.write(data.getvalue()) + with open(local_path, "rb") as f: + writing_result = storage.write_file( + BUCKET_NAME, path, f, is_compressed=True, compression_type="zstd" + ) + assert writing_result + + _, local_path = tempfile.mkstemp() + with open(local_path, "wb") as f: + storage.read_file(BUCKET_NAME, path, file_obj=f) + with open(local_path, "rb") as f: + assert f.read().decode() == "lorem ipsum dolor test_write_then_read_file á" + + +def test_read_file_does_not_exist(): + storage = make_storage() + path = f"test_read_file_does_not_exist/{uuid4().hex}" + + ensure_bucket(storage) + with pytest.raises(FileNotInStorageError): + storage.read_file(BUCKET_NAME, path) + + +def test_write_then_delete_file(): + storage = make_storage() + path = f"test_write_then_delete_file/{uuid4().hex}" + data = "lorem ipsum dolor test_write_then_delete_file á" + + ensure_bucket(storage) + writing_result = storage.write_file(BUCKET_NAME, path, data) + assert writing_result + + deletion_result = storage.delete_file(BUCKET_NAME, path) + assert deletion_result is True + with pytest.raises(FileNotInStorageError): + storage.read_file(BUCKET_NAME, path) + + +def test_delete_file_doesnt_exist(): + storage = make_storage() + path = f"test_delete_file_doesnt_exist/{uuid4().hex}" + + ensure_bucket(storage) + try: + storage.delete_file(BUCKET_NAME, path) + except FileNotInStorageError: + pass + + +def test_minio_without_ports(): + minio_no_ports_config = { + "access_key_id": "hodor", + "secret_access_key": "haha", + "verify_ssl": False, + "host": "cute_url_no_ports", + "iam_auth": True, + "iam_endpoint": None, + } + storage = MinioStorageService(minio_no_ports_config) + assert storage.minio_config == minio_no_ports_config + assert storage.minio_client._base_url._url.port is None + + +def test_minio_with_ports(): + minio_no_ports_config = { + "access_key_id": "hodor", + "secret_access_key": "haha", + "verify_ssl": False, + "host": "cute_url_no_ports", + "port": "9000", + "iam_auth": True, + "iam_endpoint": None, + } + storage = MinioStorageService(minio_no_ports_config) + assert storage.minio_config == minio_no_ports_config + assert storage.minio_client._base_url.region is None + + +def test_minio_with_region(): + minio_no_ports_config = { + "access_key_id": "hodor", + "secret_access_key": "haha", + "verify_ssl": False, + "host": "cute_url_no_ports", + "port": "9000", + "iam_auth": True, + "iam_endpoint": None, + "region": "example", + } + storage = MinioStorageService(minio_no_ports_config) + assert storage.minio_config == minio_no_ports_config + assert storage.minio_client._base_url.region == "example" diff --git a/tests/unit/storage/test_new_minio.py b/tests/unit/storage/test_new_minio.py deleted file mode 100644 index 57b8587fe..000000000 --- a/tests/unit/storage/test_new_minio.py +++ /dev/null @@ -1,320 +0,0 @@ -import gzip -import tempfile -from io import BytesIO -from uuid import uuid4 - -import pytest -import zstandard - -from shared.storage.exceptions import BucketAlreadyExistsError, FileNotInStorageError -from shared.storage.minio import MinioStorageService, zstd_decoded_by_default - -BUCKET_NAME = "archivetest" - - -def test_zstd_by_default(): - assert not zstd_decoded_by_default() - - -def test_gzip_stream_compression(): - data = "lorem ipsum dolor test_write_then_read_file á" - - split_data = [data[i : i + 5] for i in range(0, len(data), 5)] - - compressed_pieces: list[bytes] = [ - gzip.compress(piece.encode()) for piece in split_data - ] - - assert gzip.decompress(b"".join(compressed_pieces)) == data.encode() - - -def make_storage() -> MinioStorageService: - return MinioStorageService( - { - "access_key_id": "codecov-default-key", - "secret_access_key": "codecov-default-secret", - "verify_ssl": False, - "host": "minio", - "port": "9000", - "iam_auth": False, - "iam_endpoint": None, - } - ) - - -def ensure_bucket(storage: MinioStorageService): - try: - storage.create_root_storage(BUCKET_NAME) - except Exception: - pass - - -def test_create_bucket(): - storage = make_storage() - bucket_name = uuid4().hex - - res = storage.create_root_storage(bucket_name, region="") - assert res == {"name": bucket_name} - - -def test_create_bucket_already_exists(): - storage = make_storage() - bucket_name = uuid4().hex - - storage.create_root_storage(bucket_name) - with pytest.raises(BucketAlreadyExistsError): - storage.create_root_storage(bucket_name) - - -def test_write_then_read_file(): - storage = make_storage() - path = f"test_write_then_read_file/{uuid4().hex}" - data = "lorem ipsum dolor test_write_then_read_file á" - - ensure_bucket(storage) - writing_result = storage.write_file(BUCKET_NAME, path, data) - assert writing_result - reading_result = storage.read_file(BUCKET_NAME, path) - assert reading_result.decode() == data - - -def test_write_then_read_file_already_gzipped(): - storage = make_storage() - path = f"test_write_then_read_file_already_gzipped/{uuid4().hex}" - data = BytesIO( - gzip.compress("lorem ipsum dolor test_write_then_read_file á".encode()) - ) - - ensure_bucket(storage) - writing_result = storage.write_file( - BUCKET_NAME, path, data, is_already_gzipped=True - ) - assert writing_result - reading_result = storage.read_file(BUCKET_NAME, path) - assert reading_result.decode() == "lorem ipsum dolor test_write_then_read_file á" - - -def test_write_then_read_file_already_zstd(): - storage = make_storage() - path = f"test_write_then_read_file_already_zstd/{uuid4().hex}" - data = BytesIO( - zstandard.compress("lorem ipsum dolor test_write_then_read_file á".encode()) - ) - - ensure_bucket(storage) - writing_result = storage.write_file( - BUCKET_NAME, path, data, compression_type="zstd", is_compressed=True - ) - assert writing_result - reading_result = storage.read_file(BUCKET_NAME, path) - assert reading_result.decode() == "lorem ipsum dolor test_write_then_read_file á" - - -def test_write_then_read_file_obj(): - storage = make_storage() - path = f"test_write_then_read_file/{uuid4().hex}" - data = "lorem ipsum dolor test_write_then_read_file á" - - ensure_bucket(storage) - - _, local_path = tempfile.mkstemp() - with open(local_path, "w") as f: - f.write(data) - with open(local_path, "rb") as f: - writing_result = storage.write_file(BUCKET_NAME, path, f) - assert writing_result - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(BUCKET_NAME, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == data - - -def test_write_then_read_file_obj_gzip(): - storage = make_storage() - path = f"test_write_then_read_file_gzip/{uuid4().hex}" - data = "lorem ipsum dolor test_write_then_read_file á" - - ensure_bucket(storage) - - _, local_path = tempfile.mkstemp() - with open(local_path, "w") as f: - f.write(data) - with open(local_path, "rb") as f: - writing_result = storage.write_file( - BUCKET_NAME, path, f, compression_type="gzip" - ) - assert writing_result - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(BUCKET_NAME, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == data - - -def test_write_then_read_file_obj_no_compression(): - storage = make_storage() - path = f"test_write_then_read_file_no_compression/{uuid4().hex}" - data = "lorem ipsum dolor test_write_then_read_file á" - - ensure_bucket(storage) - - _, local_path = tempfile.mkstemp() - with open(local_path, "w") as f: - f.write(data) - with open(local_path, "rb") as f: - writing_result = storage.write_file(BUCKET_NAME, path, f, compression_type=None) - assert writing_result - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(BUCKET_NAME, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == data - - -def test_write_then_read_file_obj_x_gzip(): - storage = make_storage() - path = f"test_write_then_read_file_obj_x_gzip/{uuid4().hex}" - compressed = gzip.compress("lorem ipsum dolor test_write_then_read_file á".encode()) - outsize = len(compressed) - data = BytesIO(compressed) - - ensure_bucket(storage) - - headers = {"Content-Encoding": "gzip"} - storage.minio_client.put_object( - BUCKET_NAME, - path, - data, - content_type="application/x-gzip", - metadata=headers, - length=outsize, - ) - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(BUCKET_NAME, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == "lorem ipsum dolor test_write_then_read_file á" - - -def test_write_then_read_file_obj_already_gzipped(): - storage = make_storage() - path = f"test_write_then_read_file_obj_already_gzipped/{uuid4().hex}" - data = BytesIO( - gzip.compress("lorem ipsum dolor test_write_then_read_file á".encode()) - ) - - ensure_bucket(storage) - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - f.write(data.getvalue()) - with open(local_path, "rb") as f: - writing_result = storage.write_file( - BUCKET_NAME, path, f, is_already_gzipped=True - ) - assert writing_result - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(BUCKET_NAME, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == "lorem ipsum dolor test_write_then_read_file á" - - -def test_write_then_read_file_obj_already_zstd(): - storage = make_storage() - path = f"test_write_then_read_file_obj_already_zstd/{uuid4().hex}" - data = BytesIO( - zstandard.compress("lorem ipsum dolor test_write_then_read_file á".encode()) - ) - - ensure_bucket(storage) - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - f.write(data.getvalue()) - with open(local_path, "rb") as f: - writing_result = storage.write_file( - BUCKET_NAME, path, f, is_compressed=True, compression_type="zstd" - ) - assert writing_result - - _, local_path = tempfile.mkstemp() - with open(local_path, "wb") as f: - storage.read_file(BUCKET_NAME, path, file_obj=f) - with open(local_path, "rb") as f: - assert f.read().decode() == "lorem ipsum dolor test_write_then_read_file á" - - -def test_read_file_does_not_exist(): - storage = make_storage() - path = f"test_read_file_does_not_exist/{uuid4().hex}" - - ensure_bucket(storage) - with pytest.raises(FileNotInStorageError): - storage.read_file(BUCKET_NAME, path) - - -def test_write_then_delete_file(): - storage = make_storage() - path = f"test_write_then_delete_file/{uuid4().hex}" - data = "lorem ipsum dolor test_write_then_delete_file á" - - ensure_bucket(storage) - writing_result = storage.write_file(BUCKET_NAME, path, data) - assert writing_result - - deletion_result = storage.delete_file(BUCKET_NAME, path) - assert deletion_result is True - with pytest.raises(FileNotInStorageError): - storage.read_file(BUCKET_NAME, path) - - -def test_minio_without_ports(): - minio_no_ports_config = { - "access_key_id": "hodor", - "secret_access_key": "haha", - "verify_ssl": False, - "host": "cute_url_no_ports", - "iam_auth": True, - "iam_endpoint": None, - } - storage = MinioStorageService(minio_no_ports_config) - assert storage.minio_config == minio_no_ports_config - assert storage.minio_client._base_url._url.port is None - - -def test_minio_with_ports(): - minio_no_ports_config = { - "access_key_id": "hodor", - "secret_access_key": "haha", - "verify_ssl": False, - "host": "cute_url_no_ports", - "port": "9000", - "iam_auth": True, - "iam_endpoint": None, - } - storage = MinioStorageService(minio_no_ports_config) - assert storage.minio_config == minio_no_ports_config - assert storage.minio_client._base_url.region is None - - -def test_minio_with_region(): - minio_no_ports_config = { - "access_key_id": "hodor", - "secret_access_key": "haha", - "verify_ssl": False, - "host": "cute_url_no_ports", - "port": "9000", - "iam_auth": True, - "iam_endpoint": None, - "region": "example", - } - storage = MinioStorageService(minio_no_ports_config) - assert storage.minio_config == minio_no_ports_config - assert storage.minio_client._base_url.region == "example"