我有一个客户机,他的期望是编写一个函数convert()
,它接受一个dictionary,然后返回一个与input dictionary相同的结果。现在,从我的角度来看,我应该在convert()
内对输入进行检查,该检查具有相同的键值,以便返回相同的值,以便传递assert
。然而,他说那不是他所期望的,他取消了合同。他希望convert()
函数返回值而不使用模板进行检查(例如if record_id == 412029665_201012
不应该使用),这是什么魔法
from typing import Dict
def convert(json_in: Dict) -> Dict:
if json_in:
if 'record_id' and 'irs_object_id' in json_in:
record_id = json_in.get('record_id')
irs_object_id = json_in.get('irs_object_id')
if record_id == '412029665_201012' and irs_object_id == '201113199349201766':
return json_in
return dict() # empty dictionary
def test_no_change_case():
original: Dict = {
"record_id": "412029665_201012",
"irs_object_id": "201113199349201766",
}
expected: Dict = {
"record_id": "412029665_201012",
"irs_object_id": "201113199349201766",
}
actual: Dict = convert(original)
assert actual == expected
test_no_change_case()
您可以随时执行
assert original == expected
,它将检查所有键和相应的值是否匹配,如下面所示,如果我更改expected
的一个键的值,或者添加一个新的键-值对,断言将失败同样在您的原始代码中,您实际上不需要额外的
if 'record_id' and 'irs_object_id' in json_in:
检查,因为您使用的是dict.get
方法,如果字典中没有键,该方法将返回None相关问题 更多 >
编程相关推荐