Support class for stubbing methods out for unit testing.

Sample Usage:

You want os.path.exists() to always return true during testing.

stubs = StubOutForTesting() stubs.Set(os.path, 'exists', lambda x: 1) ... stubs.CleanUp()

The above changes os.path.exists into a lambda that returns 1. Once the ... part of the code finishes, the CleanUp() looks up the old value of os.path.exists and restores it.



View source

Undoes all SmartSet() & Set() calls, restoring original definitions.


View source

In parent, replace child_name's old definition with new_child.

The parent could be a module when the child is a function at module scope. Or the parent could be a class when a class' method is being replaced. The named child is set to new_child, while the prior definition is saved away for later, when UnsetAll() is called.

This method supports the case where child_name is a staticmethod or a classmethod of parent.

parent The context in which the attribute child_name is to be changed.
child_name The name of the attribute to change.