我是一个python newbie,并且正在尝试模拟过程。交流方法,但我不知道如何从模拟中返回多个值。我接近它的方式
with patch.object(subprocess, 'Popen', new_callable=MagicMock) as process:
process.communicate.return_value = [b'', b'']
output, error = process.communicate()
我收到的错误消息是:
> output, error = process.communicate()
E ValueError: not enough values to unpack (expected 2, got 0)
有人可以指出我在做什么,我尝试返回有没有正方形和卷曲的括号。
process.communicate
返回元组而不是列表,因此您需要更改的只是:
with patch.object(subprocess, 'Popen', new_callable=MagicMock) as process:
process.communicate.return_value = (b'', b'')
output, error = process.communicate()
通常,在Python中,当您返回元组时,它可以将其返回到元组指针中,也可以解开包装到多个值。有关更多信息,您可以转到此处(首先在Google上)
对不起,对错误的信息感到抱歉,但是我发现该错误在代码的某些部分中,上述语法在没有任何类型的括号的情况下正常工作。<<<<<<<<