title: unittest.Mock - Combining return_value and side_effect
body: <p>Is it possible to have a <code>Mock</code> object return a value when called as well as execute a statement when called? For example this:</p>
  
  <pre><code>&gt; mocked_func = Mock(return_value='Returned foo', 
                       side_effect=lambda: print('Side effect executed')
                      )
  
  &gt; print(mocked_func())
  
  Side effect executed
  None
  </code></pre>
  
  <p>The documentation seems a little ambiguous here but it seems to me that when <code>side_effect</code> is used, then <code>return_value</code> is ignored altogether and only the result of <code>side_effect</code> function is returned (which in case of <code>print()</code> is <code>None</code>).</p>
  
  <p>Since Python does not really support multi-statement lambdas (AFAIK, the best you can do is put expressions in a tuple, but then the whole tuple would be returned) - is it possible to combine the two arguments?</p>
  
  <p>I want to avoid having to define a new function and using that as the <code>side_effect</code>, I feel having both declared in a <code>Mock</code> is cleaner.</p>