我有以下代码,我需要测试:
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))
有更优雅的方式吗? 谢谢!
答案 0 :(得分:2)
你应该能够侥幸逃脱
mock_file_uploader.return_value.return_value.content = test_content
因为属性return_value
会返回在第一次访问时创建的新Mock
对象,如documentation中所述。