From c399478e86892f0e7ade51873dfbe13f87ecfa83 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Sun, 12 May 2019 12:17:41 -0400 Subject: Support for full qnames for old-style classes. --- coverage/context.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'coverage/context.py') 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 -- cgit v1.2.1