aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/python/monkey.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/python/monkey.py')
-rwxr-xr-xlib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/python/monkey.py73
1 files changed, 0 insertions, 73 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/python/monkey.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/python/monkey.py
deleted file mode 100755
index 9be285dc..00000000
--- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/python/monkey.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- test-case-name: twisted.test.test_monkey -*-
-
-# Copyright (c) Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-
-class MonkeyPatcher(object):
- """
- Cover up attributes with new objects. Neat for monkey-patching things for
- unit-testing purposes.
- """
-
- def __init__(self, *patches):
- # List of patches to apply in (obj, name, value).
- self._patchesToApply = []
- # List of the original values for things that have been patched.
- # (obj, name, value) format.
- self._originals = []
- for patch in patches:
- self.addPatch(*patch)
-
-
- def addPatch(self, obj, name, value):
- """
- Add a patch so that the attribute C{name} on C{obj} will be assigned to
- C{value} when C{patch} is called or during C{runWithPatches}.
-
- You can restore the original values with a call to restore().
- """
- self._patchesToApply.append((obj, name, value))
-
-
- def _alreadyPatched(self, obj, name):
- """
- Has the C{name} attribute of C{obj} already been patched by this
- patcher?
- """
- for o, n, v in self._originals:
- if (o, n) == (obj, name):
- return True
- return False
-
-
- def patch(self):
- """
- Apply all of the patches that have been specified with L{addPatch}.
- Reverse this operation using L{restore}.
- """
- for obj, name, value in self._patchesToApply:
- if not self._alreadyPatched(obj, name):
- self._originals.append((obj, name, getattr(obj, name)))
- setattr(obj, name, value)
-
-
- def restore(self):
- """
- Restore all original values to any patched objects.
- """
- while self._originals:
- obj, name, value = self._originals.pop()
- setattr(obj, name, value)
-
-
- def runWithPatches(self, f, *args, **kw):
- """
- Apply each patch already specified. Then run the function f with the
- given args and kwargs. Restore everything when done.
- """
- self.patch()
- try:
- return f(*args, **kw)
- finally:
- self.restore()