You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/misc/tools/kemi/python_mock/test.py

41 lines
1.1 KiB

#!/usr/bin/python3
import KSR
# this assumes you have your mock KSR.py in the local directory e.g. /test/
# and your kemi code is in ../conf/kamailio.py
sys.path.insert(0, "../conf/")
import kamailio as kamailio
#return sip:hello@world only if $ru is passed to pv.get
KSR._mock_data['pv']['get'] = {}
KSR._mock_data['pv']['get']['$ru'] = "sip:hello@world"
print("Got a value of: " + KSR.pv.get("$ru"))
#return maxfwd.process_maxfwd return 2 regardless of value passed
KSR._mock_data['maxfwd']['process_maxfwd'] = 2
KSR.maxfwd.process_maxfwd(10)
print("Got a value of: " + str(KSR.maxfwd.process_maxfwd(10)))
#set a function pointer to see if hdr.append is called
appendCalled = False
def appendHeader(param0: str):
global appendCalled
if param0.startswith("X-HDR:"):
appendCalled = True
return 1
KSR._mock_data['hdr']['append'] = appendHeader
KSR.hdr.append("X-HDR: my-header")
k = kamailio.kamailio()
k.ksr_request_route(None) # Call the kemi script, the mock implementations will be called
# Validate the results
if appendCalled:
print("hdr.append successfully called!")
else:
print("hdr.append failed to be called")