webkit
2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
|
Public Member Functions | |
def | __init__ (self) |
def | __del__ (self) |
def | SmartSet (self, obj, attr_name, new_attr) |
def | SmartUnsetAll (self) |
def | Set (self, parent, child_name, new_child) |
def | UnsetAll (self) |
Public Attributes | |
cache | |
stubs | |
Sample Usage: You want os.path.exists() to always return true during testing. stubs = StubOutForTesting() stubs.Set(os.path, 'exists', lambda x: 1) ... stubs.UnsetAll() The above changes os.path.exists into a lambda that returns 1. Once the ... part of the code finishes, the UnsetAll() looks up the old value of os.path.exists and restores it.
def stubout.StubOutForTesting.__init__ | ( | self | ) |
def stubout.StubOutForTesting.__del__ | ( | self | ) |
def stubout.StubOutForTesting.Set | ( | self, | |
parent, | |||
child_name, | |||
new_child | |||
) |
Replace child_name's old definition with new_child, in the context of the given parent. 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.
def stubout.StubOutForTesting.SmartSet | ( | self, | |
obj, | |||
attr_name, | |||
new_attr | |||
) |
Replace obj.attr_name with new_attr. This method is smart and works at the module, class, and instance level while preserving proper inheritance. It will not stub out C types however unless that has been explicitly allowed by the type. This method supports the case where attr_name is a staticmethod or a classmethod of obj. Notes: - If obj is an instance, then it is its class that will actually be stubbed. Note that the method Set() does not do that: if obj is an instance, it (and not its class) will be stubbed. - The stubbing is using the builtin getattr and setattr. So, the __get__ and __set__ will be called when stubbing (TODO: A better idea would probably be to manipulate obj.__dict__ instead of getattr() and setattr()). Raises AttributeError if the attribute cannot be found.
def stubout.StubOutForTesting.SmartUnsetAll | ( | self | ) |
Reverses all the SmartSet() calls, restoring things to their original definition. Its okay to call SmartUnsetAll() repeatedly, as later calls have no effect if no SmartSet() calls have been made.
def stubout.StubOutForTesting.UnsetAll | ( | self | ) |
Reverses all the Set() calls, restoring things to their original definition. Its okay to call UnsetAll() repeatedly, as later calls have no effect if no Set() calls have been made.
stubout.StubOutForTesting.cache |
stubout.StubOutForTesting.stubs |