28 lines
		
	
	
		
			731 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			731 B
		
	
	
	
		
			Python
		
	
	
	
| import sys
 | |
| import py
 | |
| 
 | |
| def test_frame_getsourcelineno_myself():
 | |
|     def func():
 | |
|         return sys._getframe(0)
 | |
|     f = func()
 | |
|     f = py.code.Frame(f)
 | |
|     source, lineno = f.code.fullsource, f.lineno
 | |
|     assert source[lineno].startswith("        return sys._getframe(0)")
 | |
| 
 | |
| def test_getstatement_empty_fullsource():
 | |
|     def func():
 | |
|         return sys._getframe(0)
 | |
|     f = func()
 | |
|     f = py.code.Frame(f)
 | |
|     prop = f.code.__class__.fullsource
 | |
|     try:
 | |
|         f.code.__class__.fullsource = None
 | |
|         assert f.statement == py.code.Source("")
 | |
|     finally:
 | |
|         f.code.__class__.fullsource = prop
 | |
| 
 | |
| def test_code_from_func(): 
 | |
|     co = py.code.Code(test_frame_getsourcelineno_myself) 
 | |
|     assert co.firstlineno
 | |
|     assert co.path
 |