如何解决python unittest lambda函数
我在烧瓶1.1.2和下面的python 3.8中对api使用Marshmallow进行了单元测试
schema.py
class ListSchema(Schema):
id = fields.Integer()
name = fields.String()
gone_date = fields.Function(lambda data: data.gone_date.timestamp())
main_service.py
class MainService:
@classmethod:
def get_list(cls):
list_schema = ListSchema()
list_data,total = Class.function_get_list_data
list_data = list_schema.dump(list_data,many=True)
当我为函数get_list
运行pytest时
mock = [(1,'Name_1',datetime.datetime(2020,8,20,0))],10
mock_data = mock.Mock(return_value=mock)
with mock.patch.object(Class,'function_get_list_data',mock_data):
response = MainService.get_list()
我总是在模式中添加lambda函数时出错
AttributeError:“元组”对象没有属性“ gone_date”
在这种情况下,如何通过lambda函数通过或测试。我已经尝试使用raise unittest.skip
,但这不是我的期望。我的功能仍然正常工作,仅在应用单元测试时出错。感谢您的帮助。
编辑:
此追溯:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/unittest/case.py",line 60,in testPartExecutor
yield
File "/usr/local/lib/python3.8/unittest/case.py",line 676,in run
self._callTestMethod(testMethod)
File "/usr/local/lib/python3.8/unittest/case.py",line 633,in _callTestMethod
method()
File "/opt/project/app/test/service/test_main_service.py",line 79,in test_process_list
response = MainService.get_list()
File "/opt/project/app/main/service/main_service.py",line 18,in process_main_list
list_data = list_schema.dump(list_data,many=True)
File "/usr/local/lib/python3.8/site-packages/marshmallow/schema.py",line 557,in dump
result = self._serialize(processed_obj,many=many)
File "/usr/local/lib/python3.8/site-packages/marshmallow/schema.py",line 515,in _serialize
return [
File "/usr/local/lib/python3.8/site-packages/marshmallow/schema.py",line 516,in <listcomp>
self._serialize(d,many=False)
File "/usr/local/lib/python3.8/site-packages/marshmallow/schema.py",line 521,in _serialize
value = field_obj.serialize(attr_name,obj,accessor=self.get_attribute)
File "/usr/local/lib/python3.8/site-packages/marshmallow/fields.py",line 312,in serialize
return self._serialize(value,attr,**kwargs)
File "/usr/local/lib/python3.8/site-packages/marshmallow/fields.py",line 1722,in _serialize
return self._call_or_raise(self.serialize_func,attr)
File "/usr/local/lib/python3.8/site-packages/marshmallow/fields.py",line 1736,in _call_or_raise
return func(value)
File "/opt/project/app/main/schemas/schema.py",line 13,in <lambda>
gone_date = fields.Function(lambda data: data.gone_date.timestamp())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。