import unittest from unittest.mock import Mock, patch from api.services.memoir_images.storage import TencentCosStorageService class MemoirImageStorageTest(unittest.TestCase): @patch("api.services.memoir_images.storage.CosS3Client") def test_upload_bytes_returns_persistent_cos_url(self, client_cls): client = Mock() client_cls.return_value = client storage = TencentCosStorageService( secret_id="id", secret_key="key", region="ap-shanghai", bucket="memoir-1250000000", base_url="https://memoir-1250000000.cos.ap-shanghai.myqcloud.com", ) url = storage.upload_bytes( image_bytes=b"png-bytes", key="memoirs/u1/c1/0-demo.png", content_type="image/png", ) self.assertEqual( url, "https://memoir-1250000000.cos.ap-shanghai.myqcloud.com/memoirs/u1/c1/0-demo.png", ) client.put_object.assert_called_once()