Using mock patch to mock an instance method
Question: I'm trying to mock something while testing a Django app using the
imaginatively named [Mock testing
library](http://www.voidspace.org.uk/python/mock/index.html). I can't seem to
quite get it to work, I'm trying to do this:

    
    
    models.py
    
    from somelib import FooClass
    
    class Promotion(models.Model):
        foo = models.ForeignKey(FooClass)
        def bar(self):
           print "Do something I don't want!"
    
    
    test.py
    
    class ViewsDoSomething(TestCase):
        view = 'my_app.views.do_something'
    
        def test_enter_promotion(self):
            @patch.object(my_app.models.FooClass, 'bar')
            def fake_bar(self, mock_my_method):
                print "Do something I want!"
                return True
    
            self.client.get(reverse(view))
    

What am I doing wrong?


Answer: Ah I was confused on where to apply that patch decorator. Fixed:

    
    
    class ViewsDoSomething(TestCase):
        view = 'my_app.views.do_something'
    
        @patch.object(my_app.models.FooClass, 'bar')
        def test_enter_promotion(self, mock_method):
            self.client.get(reverse(view))
    

