Documentation:

To mock a void method:
when(spy.method).then_return(None)
when(spy.method).with_args(x).then_return(None)


RECORDED calls were << ['args = ()', 'kwargs= {'key_param': 'foo'}] >>, 
 EXPECTED call has << args = ('bar',), keyword args = No keyword args where passed in >>

This means that during the execution, the method
was called like this: 

some_method(key_param = 'foo')

but the assertion made in the test was this:

some_method('bar')

keyword args are the arguments which have a name (optional parameters).

If you want to return several values, use a list
or tuple:
when(self.rec.one_arg_method).then_return(1,2)

when(self.rec.one_arg_method).then_return((1,2,3))


More docs:
http://xunitpatterns.com/Test%20Spy.html
http://hammingweight.com/UsingSpyObjects.pdf
