问题标签 [moto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3103 浏览

python - 模拟 AWS Glue 作业单元测试用例

我需要帮助编写 python 模拟单元测试用例以使用 lambda 触发 AWS Glue 作业。请帮我。下面是示例代码

请帮忙。

0 投票
0 回答
853 浏览

python - moto 在本地测试 aws sts

我想在本地使用 moto 测试我的 sts 设置。

get_aws_temp_credentials.py

test_assume_role.py :

根据moto,这应该可以。但它没有返回任何响应,也没有对assume_role呼叫做出反应。

0 投票
1 回答
1358 浏览

python-3.x - 升级 boto3 后,Moto 似乎停止嘲笑

我已经从 升级了 boto3 boto3==1.7.48 to 1.13.11,这破坏了我所有使用 Moto 的测试。看起来(令人担忧)模拟已经完全停止工作并试图实际访问 s3,这是一个以前工作的示例测试函数:

但它现在给出了这个错误

任何帮助将不胜感激。以下是升级列表:

前:

后:

0 投票
0 回答
615 浏览

flask - 如何使用 moto 和 pytest 为烧瓶 REST API 编写单元测试代码?

我们正在开发一个使用 dynamoDB 作为数据库的 Flask REST API。我想为同一个应用程序编写单元测试代码。我正在使用 moto 来模拟 dynamoDB。这是 conftest.py 的代码

我还可以在这个模拟数据库中插入、删除和创建表。

创建表:

测试创建表并向其插入数据(test_user.py)

上面的代码运行没有任何错误。

我的问题是,目前烧瓶应用程序正在使用实时 dynamodb。为了测试应用程序,我应该使用模拟 dynamodb,那么如何将这个模拟 dynamodb 指向烧瓶应用程序。这是我编写的烧瓶应用程序的示例代码(app.py)。

0 投票
2 回答
2710 浏览

python - 使用 moto 模拟 SNS 无法正常工作

在我的单元测试中:

正在测试的功能

我得到错误:botocore.errorfactory.NotFoundException: An error occurred (NotFound) when calling the Publish operation: Endpoint with arn arn:aws:sns:us-east-1:123456789012:mock-topic not found

没有意义,这就是 moto 应该创建和嘲笑的主题。为什么说它不存在?如果我 conn.publish(TopicArn=topic_arn, Message="sdfsdsdf")在单元测试本身内部调用它似乎是在模拟它,但它不会为单元测试执行的 my_module.my_method() 模拟它。也许它过早地破坏了嘲笑的话题?

编辑我尝试了各种方式,我得到了完全相同的错误:

还打开了 GitHub 问题:https ://github.com/spulec/moto/issues/3027

0 投票
1 回答
1215 浏览

python - 如何使用 moto 模拟 DynamoDB 分页?

我正在测试一些 dynamodb 访问代码。在过去,不正确的分页处理会导致错误(开发人员倾向于使用少量数据手动测试,因此很容易对分页的工作方式做出错误的假设,只有在处理实际数据量时才会暴露出来)

我通常使用plain 对访问代码进行单元测试unittest,并unittest.mock以这种方式测试了分页,但我最终编写了一些相当复杂的测试代码来模拟不同操作(扫描、查询、batch_get_item)的分页。

我正在寻找一种更简单的测试方法;moto提供了一些希望

但是,我真的不想将 1MB+ 的数据加载到 moto 中以诱导分页,我想强制它对少量数据进行分页

所以我要问的关键是:

  • moto 是否完全支持 DynamoDB 分页?
  • 我可以配置分页阈值吗?
  • 如何?
0 投票
1 回答
2092 浏览

python - Moto 不模拟 DynamoDB

我正在尝试为与 DynamoDB 通信的 Lambda 函数编写单元测试。我正在使用moto,但它没有嘲笑任何东西。每当我在 boto3 中调用某些内容时,它都会使用我的 AWS CLI 配置文件与实际 API 进行通信,而不是模拟 API。为什么会这样?

这是代码:

print(tablesListed)从我的实际帐户返回我的实际表格。如果我取消注释该create_table命令,它也会在我的 AWS 账户中创建表。

我在这里想念什么?谢谢

0 投票
3 回答
3660 浏览

python - Python os.environ.__getitem__ 从无引发 KeyError

尝试为 AWS Lamdba 函数运行 python 测试。测试代码将不会运行并输出此错误

这是初始化变量 app.py 的代码:

运行测试 test_app.py 的代码

0 投票
0 回答
155 浏览

python-3.x - 来自 Boto3 的 list_stacks() 中带有 Moto 的 Pytest-cov

我正在尝试使用 pytest 和 moto 创建一个测试,检查StackStatus字典中的是否从函数返回list_stacks()https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudformation.html# CloudFormation.Client.list_stacks)是DELETE_COMPLETE.

我为客户端连接创建了一个 pytest.fixture:

我创建了一个虚拟模板:

在我的测试函数中,我创建了堆栈,在我删除之后:

睾丸的功能是这个:

我面临一个问题:

它抱怨我的模板没有 BucketName:

但是当我添加一个时,它会给出另一个错误:

0 投票
1 回答
391 浏览

python - Moto 警告:使用 ec2_backend.describe_images() 为您的测试找到合适的图像

我正在尝试测试一个使用 boto3 中的 create_stack() 上传云形成的函数。

对于测试,我使用的是框架 moto。

对于测试,我使用 pytest 夹具在 yaml 中创建了一个 template_data:

我所有的测试都有效。

问题是我收到此警告:

我怎样才能解决这个问题?