| 
                        123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | 
                        - import os
 - import posixpath
 - from unittest.mock import MagicMock
 - 
 - import pytest
 - from _pytest.monkeypatch import MonkeyPatch
 - from oss2 import Bucket
 - from oss2.models import GetObjectResult, PutObjectResult
 - 
 - from tests.unit_tests.oss.__mock.base import (
 -     get_example_bucket,
 -     get_example_data,
 -     get_example_filename,
 -     get_example_filepath,
 -     get_example_folder,
 - )
 - 
 - 
 - class MockResponse:
 -     def __init__(self, status, headers, request_id):
 -         self.status = status
 -         self.headers = headers
 -         self.request_id = request_id
 - 
 - 
 - class MockAliyunOssClass:
 -     def __init__(
 -         self,
 -         auth,
 -         endpoint,
 -         bucket_name,
 -         is_cname=False,
 -         session=None,
 -         connect_timeout=None,
 -         app_name="",
 -         enable_crc=True,
 -         proxies=None,
 -         region=None,
 -         cloudbox_id=None,
 -         is_path_style=False,
 -         is_verify_object_strict=True,
 -     ):
 -         self.bucket_name = get_example_bucket()
 -         self.key = posixpath.join(get_example_folder(), get_example_filename())
 -         self.content = get_example_data()
 -         self.filepath = get_example_filepath()
 -         self.resp = MockResponse(
 -             200,
 -             {
 -                 "etag": "ee8de918d05640145b18f70f4c3aa602",
 -                 "x-oss-version-id": "CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0****",
 -             },
 -             "request_id",
 -         )
 - 
 -     def put_object(self, key, data, headers=None, progress_callback=None):
 -         assert key == self.key
 -         assert data == self.content
 -         return PutObjectResult(self.resp)
 - 
 -     def get_object(self, key, byte_range=None, headers=None, progress_callback=None, process=None, params=None):
 -         assert key == self.key
 - 
 -         get_object_output = MagicMock(GetObjectResult)
 -         get_object_output.read.return_value = self.content
 -         return get_object_output
 - 
 -     def get_object_to_file(
 -         self, key, filename, byte_range=None, headers=None, progress_callback=None, process=None, params=None
 -     ):
 -         assert key == self.key
 -         assert filename == self.filepath
 - 
 -     def object_exists(self, key, headers=None):
 -         assert key == self.key
 -         return True
 - 
 -     def delete_object(self, key, params=None, headers=None):
 -         assert key == self.key
 -         self.resp.headers["x-oss-delete-marker"] = True
 -         return self.resp
 - 
 - 
 - MOCK = os.getenv("MOCK_SWITCH", "false").lower() == "true"
 - 
 - 
 - @pytest.fixture
 - def setup_aliyun_oss_mock(monkeypatch: MonkeyPatch):
 -     if MOCK:
 -         monkeypatch.setattr(Bucket, "__init__", MockAliyunOssClass.__init__)
 -         monkeypatch.setattr(Bucket, "put_object", MockAliyunOssClass.put_object)
 -         monkeypatch.setattr(Bucket, "get_object", MockAliyunOssClass.get_object)
 -         monkeypatch.setattr(Bucket, "get_object_to_file", MockAliyunOssClass.get_object_to_file)
 -         monkeypatch.setattr(Bucket, "object_exists", MockAliyunOssClass.object_exists)
 -         monkeypatch.setattr(Bucket, "delete_object", MockAliyunOssClass.delete_object)
 - 
 -     yield
 - 
 -     if MOCK:
 -         monkeypatch.undo()
 
 
  |