Sometimes you just want to test a piece of code that does deep calls into other objects in isolation.
For example:
def _change(self, op, val):
self.parent.context.change(self.parent.model, self.attr, op, val)
How can we create an object to stand in for parent in the above code?
class DoAnything(object):
def __call__(self, *a, **kw): return self
__getattr__ = __add__ = __sub__ = __mul__ = __div__ = __call__
#overload more operators to taste/requirements
>>> parent = DoAnything()
>>> parent.context.change(parent.model, "foo", "bar", "baz")
<__main__.DoAnything object at 0x02169B10>
No comments:
Post a Comment