1、TypeError: type object argument after * must be an iterable, not int
原因:因为UNITTEST不支持测试装饰器,只有使用@parameterized.expand创建的测试才会被执行
(装饰器):给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器
解决办法:将参数值加引号
@parameterized.expand([
'1',
'0'
])
2、TypeError: 'str' object is not callable
关于这个问题,网上看了很多资料,都没找到解决办法,同样的写法运行同事的代码就是成功的,今天早上抽时间用文本比对工具看下差异,发现表单中的一个字段赋值时没有指定default
memo = StringField('memo', [validators.length(max=512)], '释放空间看的客观看待理工科')
正常写法:
memo = StringField('memo', [validators.length(max=512)], default='释放空间看的客观看待理工科')
3、Python3.5 does not support a 'F'prefix
调试支付宝商户修改接口时,因我的python版本是3.5,有一个字符串格式化的语法不支持,查了下官方文档发现3.6版本做了一个优化,采用 f' 代替了 str.format()
解决办法:本地安装版本做升级处理
总结
1、在设计Form时可以将参数的默认值设在表单里面,写case时只需传需要改变的参数值就可以了,减少case代码量
网友评论