def test_findsource___source__(): from py.__.code.source import findsource co = py.code.compile("""if 1: def x(): pass """) src, lineno = findsource(co) assert 'if 1:' in str(src) d = {} eval(co, d) src, lineno = findsource(d['x']) assert 'if 1:' in str(src) assert src[lineno] == " def x():"
def getfslineno(self): try: return self._fslineno except AttributeError: pass obj = self.obj # let decorators etc specify a sane ordering if hasattr(obj, 'place_as'): obj = obj.place_as try: code = py.code.Code(obj) except TypeError: # fallback to fn = (py.std.inspect.getsourcefile(obj) or py.std.inspect.getfile(obj)) fspath = fn and py.path.local(fn) or None if fspath: try: _, lineno = findsource(obj) except IOError: lineno = None else: lineno = None else: fspath = code.path lineno = code.firstlineno self._fslineno = fspath, lineno return fspath, lineno
def test_findsource___source__(): from py.__.code.source import findsource x = py.code.compile("""if 1: def x(): pass """) src, lineno = findsource(x) assert 'if 1:' in str(src) assert src[lineno] == ' def x():'
def fullsource(self): """ return a py.code.Source object for the full source file of the code """ full, _ = source.findsource(self.raw) return full
def test_findsource_fallback(): from py.__.code.source import findsource src, lineno = findsource(x) assert 'test_findsource_simple' in str(src) assert src[lineno] == ' def x():'