title: Mock Patches Appearing in the Wrong Order?
body: <p>I have a test module (<code>test.py</code>) which imports functions from another module (<code>keyboard.py</code>).</p>
  
  <p><code>keyboard.py</code></p>
  
  <pre><code>def get_keys(keyList, timeStamped):
      return event.getKeys(keyList=keyList, timeStamped=timeStamped)
  
  def wait_keys(keyList, timeStamped):
      return event.waitKeys(keyList=keyList, timeStamped=timeStamped)
  </code></pre>
  
  <p><code>test.py</code></p>
  
  <pre><code>@mock.patch('keyboard.wait_keys')
  @mock.patch('keyboard.get_keys')
  def test_2(self, mock_waitKeys, mock_getKeys):
  
      mock_waitKeys.return_value = [['wait_keys!', 0.1]]
      mock_getKeys.return_value = [['get_keys!',0.1]]
  
      run_blocks(trials,noise,win,expInfo, incorrect, tone1, tone2, experiment_details,allPoints,32,60)            
  </code></pre>
  
  <p>I'm trying to put two mock return values in place but their effects are inversed.</p>
  
  <p>When I call them in the interactive console while stopped at a breakpoint—or inspect the values when called normally—the two mocked functions return each other's fake return values. From the console:</p>
  
  <pre><code>get_keys()
  Out[2]: [['wait_keys!', 0.1]]
  wait_keys()
  Out[3]: [['get_keys!', 0.1]]
  </code></pre>
  
  <p>Why are my mock patches appearing in the wrong order?    </p>