我需要模拟Boto SQS接收消息,但是我收到了以下错误信息:
属性错误:'Stubber'对象没有属性'receive_message'
sqs_client
属性是一个Stubber
,但是receive_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()