[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')
False

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
>


-- 
http://www.voidspace.org.uk/

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