gpt4 book ai didi

boto3 - 博托斯塔伯 SQS

转载 作者:行者123 更新时间:2023-12-05 05:13:38 25 4
gpt4 key购买 nike

我需要模拟 Boto SQS 接收消息,但我收到一个错误:

AttributeError: 'Stubber' object has no attribute 'receive_message'

sqs_client 属性是一个Stubberreceive_message 不被识别,我不知道为什么。

import unittest
from api.modules.sqs_consumer import SqsConsumer
from botocore.stub import Stubber
from botocore.stub import ANY

class TestSqsConsumer(unittest.TestCase):

def test_should(self):
# given
sqs_consumer = SqsConsumer()
sqs_consumer_stup = Stubber(sqs_consumer.sqs_client)

expected_params = dict(
QueueUrl=ANY,
MaxNumberOfMessages=ANY,
WaitTimeSeconds=ANY,
MessageAttributeNames=[
'All'
])

sqs_consumer_stup.add_response(
method='receive_message',
service_response={},
expected_params=expected_params
)

sqs_consumer_stup.activate()
sqs_consumer.sqs_client = sqs_consumer_stup

# when
sqs_consumer.process()

# then
self.assertEqual(True, True)

if __name__ == '__main__':
unittest.main()

最佳答案

当您调用激活时,Boto3 stubber 对 boto 客户端进行就地更新。所以你不需要这一行

sqs_consumer.sqs_client = sqs_consumer_stup

以上几行将 sqs_client 替换为您不需要的 Stubber 对象。

关于boto3 - 博托斯塔伯 SQS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53412358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com