title: Temporary "unpatching" functionality within mock.side_effect
body: <p>Is there any way to temporary undo patching using <code>mock</code> within <code>side_effect</code>?
  In particular I'd like to make something like this work:</p>
  
  <pre><code>from mock import patch
  import urllib2
  import unittest
  
  class SimpleTest(unittest.TestCase):
      def setUp(self):
          self.urlpatcher = patch('urllib2.urlopen')
          self.urlopen = self.urlpatcher.start()
  
          def side_effect(url):
              #do some interesting stuff first
  
              #... temporary unpatch urllib2.urlopen so that we can call a real one here
              r = urllib2.urlopen(url) #this ought to be the real deal now
              #... patch it again
  
              return r
  
          self.urlopen.side_effect = side_effect
  
      def test_feature(self):
          #almost real urllib2.urlopen usage goes here
          p = urllib2.urlopen("www.google.com").read()
  
  
  if __name__ == '__main__':
      unittest.main()
  </code></pre>