我有一个来自WS的响应,它返回列表的字典。通常,我需要检查字典中是否没有一个列表是空的。但是现在我需要根据条件检查其中一些,但不是全部。
例如:结果是:
{
'firstList': [{...}], #some data in the list
'secondList': [], #empty list
'thirdList': [{...}], #some data in the list
...
}
例如,如果我有一个条件,则不应检查第二个列表
assert len(response['secondList']) > 0
但如果条件中没有它,那么它应该引发断言异常。
知道这个问题的最佳解决方案是什么吗?也许是另一个断言库?
最好的办法是最后收集所有异常,然后我可以验证它们是否正常/nok。
有几种方法,但一种非常干净的方法是:
lists_to_check = ('firstList', 'thirdList')
for list_name in lists_to_check:
assert len(response[list_name]) > 0
如果你想一个接一个地检查它们,你也可以使用这样的东西:
assert condition1 or len(response['firstList']) > 0
assert condition3 or len(response['thirdList']) > 0
但无论如何我都会使用第一个。上面的代码片段只检查'firstList'
和'thirdList'
的长度。
您可以将条件添加到assert
assert condition or len(response['secondList']) > 0
如果至少有一个条件True
,则断言将通过。