summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'coverage')
-rw-r--r--coverage/context.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/coverage/context.py b/coverage/context.py
index fb1b76ac..d2f75db2 100644
--- a/coverage/context.py
+++ b/coverage/context.py
@@ -78,5 +78,19 @@ def qualname_from_frame(frame):
qname = cls.__module__ + '.' + cls.__name__ + "." + fname
break
else:
- qname = func.__module__ + '.' + fname
+ # Support for old-style classes.
+ def mro(bases):
+ for base in bases:
+ f = base.__dict__.get(fname, None)
+ if f is func:
+ return base.__module__ + '.' + base.__name__ + "." + fname
+ for base in bases:
+ qname = mro(base.__bases__)
+ if qname is not None:
+ return qname
+ return None
+ qname = mro([self.__class__])
+ if qname is None:
+ qname = func.__module__ + '.' + fname
+
return qname