def method_names(self):
for c in self.classes():<EOL><INDENT>ms = inspect.getmembers(c, lambda f: inspect.ismethod(f) or inspect.isfunction(f))<EOL>method_name = getattr(self, '<STR_LIT>', '<STR_LIT>')<EOL>method_regex = '<STR_LIT>'<EOL>if method_name:<EOL><INDENT>if method_name.startswith(self.method_prefix):<EOL><INDENT>method_regex = re.compile(r'<STR_LIT>'.format(method_name), flags=re.I)<EOL><DEDENT>else:<EOL><INDENT>if method_name.startswith("<STR_LIT:*>"):<EOL><INDENT>method_name = method_name.strip("<STR_LIT:*>")<EOL>method_regex = re.compile(<EOL>r'<STR_LIT>'.format(self.method_prefix, method_name),<EOL>flags=re.I<EOL>)<EOL><DEDENT>else:<EOL><INDENT>method_regex = re.compile(<EOL>r'<STR_LIT>'.format(self.method_prefix, method_name),<EOL>flags=re.I<EOL>)<EOL><DEDENT><DEDENT><DEDENT>for m_name, m in ms:<EOL><INDENT>if not m_name.startswith(self.method_prefix): continue<EOL>can_yield = True<EOL>if method_regex and not method_regex.match(m_name):<EOL><INDENT>can_yield = False<EOL><DEDENT>if can_yield:<EOL><INDENT>logger.debug('<STR_LIT>'.format(m_name, method_name))<EOL>yield c, m_name<EOL><DEDENT><DEDENT><DEDENT>
return the actual test methods that matched self.method_name