title: How to mock random.choice in python?
body: <p>I want <code>choice</code> to return the same value <code>1000</code> every time in my unittest. The following code doesn't work.</p>
  
  <pre><code>import unittest
  from random import choice
  
  from mock import mock
  
  def a():
      return choice([1, 2, 3])
  
  class mockobj(object):
      @classmethod
      def choice(cls, li):
          return 1000
  
  class testMock(unittest.TestCase):
  
      def test1(self):
          with mock.patch('random.choice', mockobj.choice):
              self.assertEqual(a(), 1000)
  </code></pre>
  
  <p>The error message is as follows:</p>
  
  <pre><code>Failure
  Traceback (most recent call last):
    File "test.py", line 15, in test1
      self.assertEqual(a(), 1000)
  AssertionError: 3 != 1000
  </code></pre>
  
  <p>How should I modify it to make it work? I'm using python2.7</p>