diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2010-02-28 13:38:54 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2010-02-28 13:38:54 -0500 |
commit | 444fd0e3503c735fc198ce6564d757aa5efae43a (patch) | |
tree | 058dbc3ac1f8d7d00213f60bd675c1c3f27e40cf /mock.py | |
parent | 1ee6e0a8c68303588c4fa7a64d0747d3ebbea588 (diff) | |
download | python-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.py | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -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)
|