- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用 moto 模拟 AWS SQS,下面是我的代码
from myClass import get_msg_from_sqs
from moto import mock_sqs
#from moto.sqs import mock_sqs
@mock_sqs
def test_get_all_msg_from_queue():
#from myClass import get_msg_from_sqs
conn = boto3.client('sqs', region_name='us-east-1')
queue = conn.create_queue(QueueName='Test')
os.environ["SQS_URL"] = queue["QueueUrl"]
queue.send_message( MessageBody=json.dumps({'a': '1', 'b': '2', 'c': '3'}))
#Tried this as well
#conn.send_message(QueueUrl=queue["QueueUrl"], MessageBody=json.dumps({'a': '1', 'b': '2', 'c': '3'}))
resp = get_msg_from_sqs(queue["QueueUrl"])
assert resp is not None
执行此操作时出现以下错误
> queue.send_message( MessageBody=json.dumps({'a': '1', 'b': '2', 'c': '3'}))
E AttributeError: 'dict' object has no attribute 'send_message'
如果我尝试另一种方式在 SQS 中发送消息(参见注释掉的代码#Tried this as well)然后在我的方法 get_msg_from_sqs 中调用实际 SQS 时,出现以下错误
E botocore.exceptions.ClientError: An error occurred
(InvalidAddress) when calling the ReceiveMessage operation:
The address https://queue.amazonaws.com/ is not valid for this endpoint.
我用 PyCharm 在 win10 上运行它,moto 版本设置为
moto = "^2.2.6"
我的代码如下
sqs = boto3.client('sqs')
def get_msg_from_queue(queue_url: str) -> dict:
return sqs.receive_message(QueueUrl=queue_url, AttributeNames=['All'],
MaxNumberOfMessages=1, VisibilityTimeout=3600, WaitTimeSeconds=0)
我在这里错过了什么?
最佳答案
您的 queue
变量是 create_queue 返回的字典:
queue = conn.create_queue(QueueName='Test')
它不是队列,因此您不能对其调用 sendMessage
。
为此,您需要创建一个队列对象:
sqs = boto3.resource('sqs')
response = conn.create_queue(QueueName='Test')
queue_url = response["QueueURL"]
queue = sqs.Queue(queue_url)
queue.send_message()
关于Python AWS SQS 与 MOTO 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69213098/
我希望有人能帮我解决这个问题。 前段时间我开发了一个应用程序,目的是在智能手机中同时记录前置麦克风和后置麦克风捕获的声音。基本上,我会像这样制作下一个对象: AudioRecord audioReco
我正在编写一个 lambda 函数,它获取 CW 日志组列表并对每个日志组运行“导出到 s3”任务。 我正在使用 pytest 编写自动化测试我正在使用 moto.mock_logs (除其他外),但
我有一个名为 check_stuff 的函数,它实例化一个对象并调用函数 describe_continuous_backups,但是,moto 尚不支持此功能,因此我需要自己手动模拟它。我有以下内容
总而言之,我一遍又一遍地在谷歌上搜索以找到解决方案,虽然我发现了一个关于相机释放等的错误,但我似乎无法让凸轮代码正常工作。每次我执行 takePicture 时,系统都会挂起,有时它会调用 Pictu
我不知道其他人是否也遇到过这种情况。连接到 Moto 360 (Android Wear) 上的 Sensor.TYPE_MAGNETIC_FIELD 传感器时,我没有收到任何更新。 以下代码都有效:
我目前正在尝试使用 Moto 和 @mock_dynamodb2 为我的 python 代码编写单元测试。到目前为止,我一直在测试我的“成功操作”测试用例。但是我很难让它为我的“失败案例”工作。 在我
通过 goCoder SDK 使用 Wowza Streaming Cloud 开始流式传输时,Moto g 和三星 s6 中的摄像头当时无法打开,但当我切换摄像头时,两个摄像头(后置和前置)都可以正
我需要访问 Moto 设备 (5.0.1) 上的数据漫游状态 if (Settings.Secure.getInt(context.getContentResolver(),Settings.Secu
上周买了新的 Moto G XT1033,手机工作正常,但作为开发人员,我发现在 Debug模式下很难,即使在开发人员选项中启用 USB 调试选项之后... 必要时出现错误 USB 驱动程序 未找到
我有一台 Windows 7 x64 Ultimate 计算机,我想在 Debug模式下连接我的 Moto X 2nd Gen (XT1097),以便我可以开发一些应用程序。 p> 问题是,Windo
我正在尝试测试一些使用 boto 的 python 代码。我不想尝试针对 AWS 进行集成测试,所以我尝试用 moto 模拟它,但它的行为并不像我预期的那样。 测试代码如下: import io im
我最近在 android wearable(MOTO 360) 上开发应用。 我的问题是,是否可以将传感器数据作为文件保存在我的 watch 中?或者我必须将这些数据发送回我的掌上电脑进行保存? 我尝
我编写了一个在圆形和方形 watch 上运行的应用程序,具有两个布局和一个 watchViewStub。由于 moto 360 在欧洲销售,我有很多报告说 Moto 360 没有加载圆形布局。使用模拟
我正在尝试通过蓝牙在我的 Moto 360 上进行调试。我正在关注这些 instructions但是当我输入 adb forward tcp:4444 localabstract:/adb-hub;
我正在测试一些 dynamodb 访问代码。在过去,对分页的不正确处理导致了错误(开发人员倾向于使用少量数据进行手动测试,因此很容易对分页的工作原理做出错误的假设,只有在处理实际数据量时才会出现这种假
在我的代码中的某处,lambda 被调用以返回 true/false 响应。我试图在我的单元测试中模拟这个 lambda 但没有成功。 这是我的代码: def _test_update_allowed
我正在尝试用 moto 模拟 AWS SQS,下面是我的代码 from myClass import get_msg_from_sqs from moto import mock_sqs #from
在我的单元测试中: def test_my_function_that_publishes_to_sns(): conn = boto3.client("sns", region_name="
我正在尝试模拟计算环境的创建,这需要一些其他资源,即 IAM 实例配置文件和服务角色。但是,当我创建这些 IAM 资源然后尝试在计算环境创建中使用它们时,事情失败了: Role arn:aws:iam
我想对从 aws 导入的文件进行测试。 我使用 moto 模拟 s3,以免弄乱实际数据。但是,现在 aws 似乎是空的,因此我决定在模拟的 s3 上上传一些测试文件。我该怎么做? 这是我的设置, 比赛
我是一名优秀的程序员,十分优秀!