get_judgedoc_shinfo_time_node_api.side_effect = self.__side_effect_judgedoc_shinfo('2009-12-11')
def __side_effect_judgedoc_shinfo(self, verify_open_from): 1)
time_map_judgedoc_shinfo = self.__get_time_map_judgedoc_shinfo() 2)
def inner_effect(*arg): 4)
start_time = arg[1] 5)
self.assertEqual(verify_open_from, start_time) 6)
to_time = arg[2] 7)
return time_map_judgedoc_shinfo[to_time] 8)
return inner_effect 3)
执行顺序:1)——7),根据return特性,一旦return,就直接跳出程序;因此,进一步理解,return inner_effect的时候,其实也将get_judgedoc_shinfo_time_node_api.side_effect中的get_judgedoc_shinfo_time_node_api 参数*arg传给了inner_effect,因此,定义inner_effect的时候,还可以这样定义inner_effect(*arg),
@staticmethod
def __get_time_map_judgedoc_shinfo():
"""
裁判文书
"""
return {
'2013-02-12': {
"data": {
"reasonCount": [
{
"Count": 1
}
]
}
},
'2014-02-12': {
"data": {
"reasonCount": [
{
"Count": 2
}
]
}
},
'2015-02-12': {
"data": {
"reasonCount": [
{
"Count": 1
},
{
"Count": 2
},
{
"Count": 3
}
]
}
}
}
疑问1:*arg中的参数是何时传进去的,难道是 get_judgedoc_shinfo_time_node_api.side_effect = self.__side_effect_judgedoc_shinfo('2009-12-11')通过右边的式子传进去的??
还是通过 time_map_judgedoc_shinfo = self.__get_time_map_judgedoc_shinfo()传进去的;
疑问2:return time_map_judgedoc_shinfo[to_time]中的to_time是跟 def __get_time_map_judgedoc_shinfo(): return...中的时间保持一致的吧?那这么说*arg中的参数是通过def __get_time_map_judgedoc_shinfo():确定的咯??
解:*arg是根据com_data解析得到的,返回的左区间与右区间两个时间值,然后根据切割点数,进行切割,有三个时间点,因此以2015-2-12号为起点向后数到2013-2-12,时间注意其规律,因此好几个api返回的时间节点都是这样的:2015-2-12,2014-2-12,2013-2-12;
下面assert函数进行最后的测试验证:
def __assert_normal(self, feature_tme_svc, first_time, second_time, last_time):
"""
常规检查
"""
# -- when
res = feature_tme_svc.get_time_features(company_name=u'北京龙盛源小额贷款有限公司', node_num=3)
#这一步,会走所用mock后的api,
# -- then
assert res.time_map_features[last_time]
k = res.time_map_features[last_time]
print(type(k))
self.t_u.print_domain(res)
self.assertEqual(3, len(res.time_map_features.keys()))
self.assertEqual(2, res.time_map_features[last_time].address_change_cnt)
self.assertEqual(6, res.time_map_features[last_time].established_years)
self.assertEqual(0, res.time_map_features[last_time].fr_change_cnt)
self.assertEqual(3, res.time_map_features[last_time].regcap_change_cnt)
self.assertEqual(6, res.time_map_features[first_time].bidding_cnt)
self.assertEqual(9, res.time_map_features[second_time].bidding_cnt)
self.assertEqual(11, res.time_map_features[last_time].bidding_cnt)
self.assertEqual(6, res.time_map_features[last_time].judgedoc_cnt)
self.assertEqual(4, res.time_map_features[last_time].trade_mark_cnt)
下一个学习方面:如何在Python中使用static、class、abstract方法(权威指南)
[如何在Python中使用static、class、abstract方法(权威指南)](http://python.jobbole.com/81595/)
对mock的进一步理解
猜你喜欢
转载自blog.csdn.net/sinat_26566137/article/details/80186948
今日推荐
周排行