[TIP] removing attributes and dictionary keys using mock.patch

Michael Foord michael at voidspace.org.uk
Fri Dec 5 10:19:42 PST 2014


On 05/12/14 16:54, Chris Withers wrote:
> Hi All,
>
> I'm excited to see how far mock.patch has come, mainly as I'm hoping I 
> can deprecate testfixtures.Replacer as a result ;-)
>
> The only think it looks like Mock can't currently do is remove 
> attributes or dictionary items:
>
> https://pythonhosted.org/testfixtures/mocking.html#removing-attributes-and-dictionary-items 
>
>
> Michael, would you be up for me adding that to Mock or is it a 
> non-starter?
>
> I'd be happy to approach using either a delete=True option to patch() 
> and patch.dict() (I don't really understand what patch.object does, so 
> can't comment...) or, alternatively, a not_there or deleted marker 
> object like I did in testfixtures.
>
> Lemme know your thoughts...
>

So, removing an attribute is not possible in the *general* case. In the 
specific case of it being an instance attribute you can remove it from 
the object dictionary. In which case just having patch.dict support key 
removal would work.

I don't have any objection if the api can be clean and the 
implementation isn't horrible.

Michael

> Chris




More information about the testing-in-python mailing list