You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

moto mock_ses的list_identities(IdentityType)返回结果不符合预期

问题分析与解决方案

这是moto 4.2.6版本的SES mock实现缺陷——该版本的list_identities()方法没有实现IdentityType参数的筛选逻辑,无论传入EmailAddress还是Domain,都会返回所有已添加的身份,和AWS SES的实际行为不符。

解决办法有两个:

  1. 升级moto到新版本
    moto后续的稳定版本(比如5.x系列)已经修复了这个问题,升级后mock的list_identities()会正确识别IdentityType参数并过滤结果。执行升级命令:

    pip install --upgrade moto
    
  2. 测试中手动过滤结果(临时方案)
    如果暂时无法升级,可以在调用mock的list_identities()后,自己根据需求过滤返回的身份列表,比如只保留邮箱:

    from moto import mock_ses
    import boto3
    
    @mock_ses
    def test_filter_email_identities():
        ses_client = boto3.client('ses', region_name='us-east-1')
        # 添加测试用的邮箱和域名身份
        ses_client.verify_email_identity(EmailAddress='user@test.com')
        ses_client.verify_domain_identity(Domain='test.com')
    
        # 调用mock方法
        raw_response = ses_client.list_identities(IdentityType='EmailAddress')
        # 手动过滤邮箱身份
        email_identities = [id for id in raw_response['Identities'] if '@' in id]
        
        # 断言验证
        assert len(email_identities) == 1
        assert 'user@test.com' in email_identities
    

内容的提问来源于stack exchange,提问作者Kai-Eiji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 21:29:55