我正在为具有不同来源的设置进行温度控制编程(在本例中只有一个):
source = Source()
sources_dict = {
key: source
}
temp_control = TempControl(args) #A dictionary is built on instantiation based on args
#and assigned to temp_control.sources
sources_dict 的定义与 TempControl(args) 的参数相同。查看 for 循环的内容,了解哪些有效,哪些无效。
for key, value in tempControl.sources.iteritems():
assert_equal(value, sources_dict[key]) #Fails
tempControl.sources[key] == sources_dict[key] #Works
value == sources_dict[key] #Works
如果没有,我会收到以下错误消息:
AssertionError: <pvd_temp_control.Source object at 0x02AA63B0> != <pvd_temp_cont
rol.Source object at 0x02AA6330>
-------------------- >> begin captured stdout << ---------------------
sources_dict: {'Cu': <pvd_temp_control.Source object at 0x02AA6330>}
tempControl.sources: {'Cu': <pvd_temp_control.Source object at 0x02AA63B0>}
source: <pvd_temp_control.Source object at 0x02AA6330>
--------------------- >> end captured stdout << ----------------------
有什么想法吗?
最佳答案
我必须说得更具体。 assert_equal 不会变魔术并遍历字典。这是正确的,例如:
for key, value in tempControl.sources.iteritems():
assert_equal(value.element_name, sources_dict[key].key_name)
关于python - Nosetests assert_equal 显然不等于 python ==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646607/