Source code for tests.30_libs.040_PySourceInfo.getStackFuncList.CallCase
"""Check defaults.
"""
from __future__ import absolute_import
import unittest
import os
from pysourceinfo.PySourceInfo import getStackFuncList, getCallerFunc,getStackLen
#
#######################
#
[docs]class CallUnits(unittest.TestCase):
[docs] def callFunc(self,cfunc,param):
"""Function dummy, traces current stack by two different calls, normalizes the calls.
"""
cx = cfunc(param)
cxRef = []
if not param:
for i in range(getStackLen()):
cxRef.append(getCallerFunc(i))
#adapt to different call context
cx.pop(0)
cxRef.pop(0)
else:
for i in range(getStackLen()):
cxRef.append(getCallerFunc(i))
#adapt to different call context
cx.pop()
cxRef.pop(0)
cxRef = [x for x in reversed(cxRef)]
ret = (cx,cxRef,)
return ret
[docs] def wrapStackDepth(self,deepness,cfunc,param):
"""Simulates depth of callstack.
"""
if deepness > 0:
_r = self.wrapStackDepth(deepness-1, cfunc, param)
else:
return self.callFunc(cfunc,param)
return _r
[docs] def testCase000(self):
"""simple upper call stack
"""
c = self.wrapStackDepth(4, getStackFuncList,False)
c0ID = map(id,c[0]) #@UnusedVariable
c1ID = map(id,c[1]) #@UnusedVariable
assert c[0] == c[1]
pass
[docs] def testCase001(self):
"""reversed simple upper call stack
"""
c = self.wrapStackDepth(4, getStackFuncList,True)
c0ID = map(id,c[0]) #@UnusedVariable
c1ID = map(id,c[1]) #@UnusedVariable
self.assertEqual(c[0], c[1])
pass
[docs] def testCase002(self):
"""both previous for eventual debugging
"""
c = self.wrapStackDepth(4, getStackFuncList,False)
c0ID = map(id,c[0]) #@UnusedVariable
c1ID = map(id,c[1]) #@UnusedVariable
d = self.wrapStackDepth(4, getStackFuncList,True)
d0ID = map(id,d[0]) #@UnusedVariable
d1ID = map(id,d[1]) #@UnusedVariable
self.assertEqual(c[0], c[1])
self.assertEqual(d[0], d[1])
pass
if __name__ == '__main__':
unittest.main()