Q:

Python mock values using side_effect but for a function which is returning multiple parameters

results=[("a", "b"),("c", "d")]
with patch('app.return_alpha.Alpha.return_multiple', side_effect=results) as mymock1:
     v=Alpha()
     first, second = v.return_multiple()
     third, fourth = v.return_multiple()

main function:
def return_multiple():
     #some db operation
     return a,b

getting error 
ValueError: not enough values to unpack (expected 2, got 1)

A:

This works as expected. Minimal example:
python 3.6.8
>>> from unittest.mock import patch
>>> class A:
...     def return_multiple(self):
...         return 'a', 'b'
... 
>>> with patch('__main__.A.return_multiple', side_effect=[(1, 1), (2, 2), (3, 3)]) as _mymock1:
...     v = A()
...     first, second = v.return_multiple()
...     third, fourth = v.return_multiple()
... 
>>> print(third, fourth)
2 2

