summaryrefslogtreecommitdiff
path: root/mock.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2010-02-28 13:38:54 -0500
committerNed Batchelder <ned@nedbatchelder.com>2010-02-28 13:38:54 -0500
commit444fd0e3503c735fc198ce6564d757aa5efae43a (patch)
tree058dbc3ac1f8d7d00213f60bd675c1c3f27e40cf /mock.py
parent1ee6e0a8c68303588c4fa7a64d0747d3ebbea588 (diff)
downloadpython-coveragepy-git-444fd0e3503c735fc198ce6564d757aa5efae43a.tar.gz
Some tweaks to mock.py to get patching to work on 2.3 and 3.1, though 2.3 is kind of useless for this...
Diffstat (limited to 'mock.py')
-rw-r--r--mock.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/mock.py b/mock.py
index 795ccc1b..364a939e 100644
--- a/mock.py
+++ b/mock.py
@@ -199,9 +199,16 @@ class _patch(object):
patching.__exit__()
patched.patchings = [self]
- patched.__name__ = func.__name__
+ try:
+ patched.__name__ = func.__name__
+ except TypeError:
+ pass # older Pythons don't let you change __name__
+ try:
+ firstlineno = func.func_code.co_firstlineno
+ except AttributeError:
+ firstlineno = func.__code__.co_firstlineno
patched.compat_co_firstlineno = getattr(func, "compat_co_firstlineno",
- func.func_code.co_firstlineno)
+ firstlineno)
return patched
@@ -255,7 +262,10 @@ def patch_object(target, attribute, new=DEFAULT, spec=None, create=False):
def patch(target, new=DEFAULT, spec=None, create=False):
try:
- target, attribute = target.rsplit('.', 1)
+ #target, attribute = target.rsplit('.', 1)
+ parts = target.split('.')
+ target = '.'.join(parts[:-1])
+ attribute = parts[-1]
except (TypeError, ValueError):
raise TypeError("Need a valid target to patch. You supplied: %r" % (target,))
target = _importer(target)