对不同数据类型使用assert进行API测试

2024-09-29 01:25:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两组数据一组是从数据库返回的,一组是从API响应返回的。 从数据库返回的一个是元组列表(变量Db)。 API响应返回的一个是字典列表(变量API)

有没有办法检查Db中的每个元组元素是否与Api中的dictionary元素匹配。我尝试了多个for循环,但没有成功。 我想知道是否有一个优雅的方式(可能是断言)这样做

Db=[('D967E735-070D-48F9-A3BB-D00766D39F57', 'test1', '51-00401'),
    ('94F903D1-2EE7-4BD2-A0C6-B464D9F2939C', 'test4', '51-00404'),
    ('FE0CC34C-BA6A-4123-B72C-617ADC0A93E7', 'test10', '51-00409')]

Api=[{'Id': 'd967e735-070d-48f9-a3bb-d00766d39f57',
  'name': 'test1',
  'Number': '51-00401'},
 {'Id': '94f903d1-2ee7-4bd2-a0c6-b464d9f2939c',
  'name': 'test4',
  'Number': '51-00404'},
 {'Id': 'fe0cc34c-ba6a-4123-b72c-617adc0a93e7',
  'name': 'test10',
  'Number': '51-00409'}]

Tags: 数据nameapiid数据库元素number列表
1条回答
网友
1楼 · 发布于 2024-09-29 01:25:11

这是一种方法:

Db = [('D967E735-070D-48F9-A3BB-D00766D39F57', 'test1', '51-00401'),
      ('94F903D1-2EE7-4BD2-A0C6-B464D9F2939C', 'test4', '51-00404'),
      ('FE0CC34C-BA6A-4123-B72C-617ADC0A93E7', 'test10', '51-00409')]

Api = [{'Id': 'd967e735-070d-48f9-a3bb-d00766d39f57', 'name': 'test1', 'Number': '51-00401'},
       {'Id': '94f903d1-2ee7-4bd2-a0c6-b464d9f2939c', 'name': 'test4', 'Number': '51-00404'},
       {'Id': 'fe0cc34c-ba6a-4123-b72c-617adc0a93e7', 'name': 'test10', 'Number': '51-00409'}]

for i in Db:
    match = i[0].lower() in {d['Id'].lower() for d in Api}
    print(i[0], match)

# D967E735-070D-48F9-A3BB-D00766D39F57 True
# 94F903D1-2EE7-4BD2-A0C6-B464D9F2939C True
# FE0CC34C-BA6A-4123-B72C-617ADC0A93E7 True

相关问题 更多 >