jeudi 23 avril 2015

Unit Test Behavior with Patch (Flask)

I am trying to patch methods in my flask api but it appears that the method call is not being replaced. Does app.test_client() do something under the hood that I am missing.

For example if I run

 @patch('k.stats.mstats')
  def test_ps(self, mstats):
    mstats.return_value = (1, 2, 3)
    rv = self.app.get('/ps/')

and I run through the debugger to the point below:

@app.route('/ps/', methods=['GET'])
def ps():
  import pdb
  pdb.set_trace()
  mstats()

and inspect mstats, I will get back the function that is unmocked.

However, if I run from k.stats import mstats from the breakpoint, I get back the mocked method that I am looking for.

How do I ensure that the mocked method gets called?

Aucun commentaire:

Enregistrer un commentaire