Я пытаюсь создать заглушку с endpoint_url для моего клиента boto3. Вот мой код.
subject_under_test.py
import boto3
def head_obj():
s3 = boto3.client(service_name="s3", endpoint_url=<endpoint_url>)
try:
s3.head_object(Bucket=bucket, Key=key)
return True
except ClientError as e:
return False
test_subject.py
from botocore.stub import Stubber
import boto3
from subject_under_test import head_obj
class TestSubject(unittest.TestCase):
def setUp(self):
s3 = boto3.client('s3', endpoint_url=<endpoint_url>)
stubber = Stubber(s3)
stubber.add_response(
'head_object',
expected_params = {'Bucket': 'bucket1', 'Key':'key1'},
service_response={},
)
stubber.add_client_error(
'head_object',
expected_params = {'Bucket': 'bucket1', 'Key':'key2'},
service_error_code='404',
)
def test_head_obj(self):
self.assertTrue(head_obj("bucket1","key1"))
self.assertFalse(head_obj("bucket1","key2"))
if __name__ == '__main__':
unittest.main()
boto3 пытается подключиться и дать мне ошибку в create_connection. Как можно избежать создания соединения?