Python 中的条件断言
Conditional assertion in Python
我有一个来自 WS 的响应returns 字典列表。通常,我需要检查字典中列表的 none 是否为空。但是现在我需要根据条件检查其中的一些,但不是全部。
例如:
结果是:
{
'firstList': [{...}], #some data in the list
'secondList': [], #empty list
'thirdList': [{...}], #some data in the list
...
}
例如,如果我有一个条件,即 secondList 不应该用
检查
assert len(response['secondList']) > 0
那么它不应该引发异常,但如果我没有在条件中,那么它应该引发断言异常。
知道这个问题的最佳解决方案是什么吗?也许是另一个断言库?
最好是最后收集所有异常,然后我可以验证它们是否 ok/nok。
您可以将条件添加到 assert
assert condition or len(response['secondList']) > 0
如果至少有一个条件是True
,则断言将通过。
有几种方法,但一种非常干净的方法是:
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'
.
的长度
我有一个来自 WS 的响应returns 字典列表。通常,我需要检查字典中列表的 none 是否为空。但是现在我需要根据条件检查其中的一些,但不是全部。
例如: 结果是:
{
'firstList': [{...}], #some data in the list
'secondList': [], #empty list
'thirdList': [{...}], #some data in the list
...
}
例如,如果我有一个条件,即 secondList 不应该用
检查assert len(response['secondList']) > 0
那么它不应该引发异常,但如果我没有在条件中,那么它应该引发断言异常。
知道这个问题的最佳解决方案是什么吗?也许是另一个断言库?
最好是最后收集所有异常,然后我可以验证它们是否 ok/nok。
您可以将条件添加到 assert
assert condition or len(response['secondList']) > 0
如果至少有一个条件是True
,则断言将通过。
有几种方法,但一种非常干净的方法是:
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'
.