Exemplo n.º 1
0
def frame_to_func_descriptor(
        frame: FrameType) -> Tuple[str, str, str, List[str]]:
    """Retrieve module-name, class-name, function-name and tags including all fallbacks"""
    func_name = frame.f_code.co_name
    filename = frame.f_code.co_filename
    tags = []
    if func_name == "wrapper" and "function" in frame.f_locals:
        mod_name, class_name, unwrapped_func_name = func_to_descriptor(
            frame.f_locals["function"])
        tags.append("#wrapper")
    else:
        unwrapped_func_name = func_name
        try:
            func = frame_to_func(frame)
            mod_name, class_name, _ = func_to_descriptor(func)
        except Exception:  # pylint: disable=broad-except
            tags.append("#naming-fallback-funcPtr")
            mod = inspect.getmodule(frame)
            if mod is not None:
                mod_name = mod.__name__
            else:
                tags.append("#naming-fallback-inspect")
                mod_name = _fullmodname(filename)
            class_name = frame_to_classname(frame)
    return mod_name, class_name, unwrapped_func_name, tags
Exemplo n.º 2
0
 def test_issue9936(self):
     tracer = trace.Trace(trace=0, count=1)
     modname = 'test.tracedmodules.testmod'
     if modname in sys.modules:
         del sys.modules[modname]
     cmd = 'import test.tracedmodules.testmod as t;t.func(0); t.func2();'
     with captured_stdout() as stdout:
         self._coverage(tracer, cmd)
     stdout.seek(0)
     stdout.readline()
     coverage = {}
     for line in stdout:
         lines, cov, module = line.split()[:3]
         coverage[module] = int(lines), int(cov[:-1])
     modname = trace._fullmodname(sys.modules[modname].__file__)
     self.assertIn(modname, coverage)
     self.assertEqual(coverage[modname], (5, 100))
Exemplo n.º 3
0
 def test_issue9936(self):
     tracer = trace.Trace(trace=0, count=1)
     modname = "test.tracedmodules.testmod"
     # Ensure that the module is executed in import
     if modname in sys.modules:
         del sys.modules[modname]
     cmd = "import test.tracedmodules.testmod as t;" "t.func(0); t.func2();"
     with captured_stdout() as stdout:
         self._coverage(tracer, cmd)
     stdout.seek(0)
     stdout.readline()
     coverage = {}
     for line in stdout:
         lines, cov, module = line.split()[:3]
         coverage[module] = (int(lines), int(cov[:-1]))
     # XXX This is needed to run regrtest.py as a script
     modname = trace._fullmodname(sys.modules[modname].__file__)
     self.assertIn(modname, coverage)
     self.assertEqual(coverage[modname], (5, 100))
Exemplo n.º 4
0
 def test_issue9936(self):
     tracer = trace.Trace(trace=0, count=1)
     modname = 'test.tracedmodules.testmod'
     # Ensure that the module is executed in import
     if modname in sys.modules:
         del sys.modules[modname]
     cmd = ("import test.tracedmodules.testmod as t;"
            "t.func(0); t.func2();")
     with captured_stdout() as stdout:
         self._coverage(tracer, cmd)
     stdout.seek(0)
     stdout.readline()
     coverage = {}
     for line in stdout:
         lines, cov, module = line.split()[:3]
         coverage[module] = (int(lines), int(cov[:-1]))
     # XXX This is needed to run regrtest.py as a script
     modname = trace._fullmodname(sys.modules[modname].__file__)
     self.assertIn(modname, coverage)
     self.assertEqual(coverage[modname], (5, 100))
Exemplo n.º 5
0
 def update_event(self, inp=-1):
     self.set_output_val(0, trace._fullmodname(self.input(0)))