[TIP] hasattr and Mock

Michael Foord michael at voidspace.org.uk
Thu Aug 25 10:58:35 PDT 2011

On 25/08/2011 18:26, Jacocks, Jeremy wrote:
> This may be a known issue, but is there a good workaround to hasattr always returning true for a mocked object?
> Any links or documentation on the subject would be helpful,

An example:

 >>> from mock import Mock
 >>> m = Mock(spec=['foo'])
 >>> hasattr(m, 'bar')

spec can also be an object (like a class), in which case the list of 
allowed members is taken from the dir of the object you pass in.

You can get this behaviour automatically with patch if you do:

     with patch('foo.bar.baz', spec=True):

The created mock will have the spec of the object it is replacing.

All the best,

Michael Foord

> Thank you!
> Jeremy
> _______________________________________________
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
> http://lists.idyll.org/listinfo/testing-in-python


May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html

More information about the testing-in-python mailing list