如何在Python中模拟可调用实例的属性?
我有以下代码需要测试:如何在Python中模拟可调用实例的属性?,python,mocking,Python,Mocking,我有以下代码需要测试: uploader = AjaxFileUploader(backend=XLSXFileUploadBackend, obj=obj) response = uploader(request) ... response.content 我想模拟AjaxFileUploader并用一些值替换response.content 我做了以下工作: @patch('guinness.apps.home.views.AjaxFileUploader') def test_impor
uploader = AjaxFileUploader(backend=XLSXFileUploadBackend, obj=obj)
response = uploader(request)
...
response.content
我想模拟AjaxFileUploader并用一些值替换response.content
我做了以下工作:
@patch('guinness.apps.home.views.AjaxFileUploader')
def test_import_asset_to_bucket(self, mock_file_uploader):
test_content = 'a:"1"'
mock_file_uploader.return_value = MagicMock(return_value=MagicMock(content=test_content))
还有更优雅的方式吗?
谢谢 你只要做一件事就应该能够逃脱惩罚
mock_file_uploader.return_value.return_value.content = test_content
因为属性return\u value
返回第一次访问时创建的新Mock
对象,如中所述
不过,我不确定这是否更优雅