60 lines
1.7 KiB
Python
Executable File
60 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
# This test checks following use-cases while in 'closed' policy:
|
|
# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously
|
|
# defined in its configuration file.
|
|
# * SMPP interface of SMSC rejects ESMEs with known system id but wrong password.
|
|
# * SMPP interface of SMSC rejects ESEMs with unknown system id
|
|
|
|
from osmo_gsm_tester.testenv import *
|
|
|
|
SMPP_ESME_RINVPASWD = 0x0000000E
|
|
SMPP_ESME_RINVSYSID = 0x0000000F
|
|
|
|
hlr = tenv.hlr()
|
|
bts = tenv.bts()
|
|
mgw_msc = tenv.mgw()
|
|
stp = tenv.stp()
|
|
msc = tenv.msc(hlr, mgw_msc, stp)
|
|
smsc = msc.smsc
|
|
|
|
esme = tenv.esme()
|
|
esme_no_pwd = tenv.esme()
|
|
esme_no_pwd.set_password('')
|
|
|
|
smsc.set_smsc_policy(smsc.SMSC_POLICY_CLOSED)
|
|
smsc.esme_add(esme)
|
|
smsc.esme_add(esme_no_pwd)
|
|
|
|
stp.start()
|
|
hlr.start()
|
|
msc.start()
|
|
mgw_msc.start()
|
|
|
|
log('Test with correct credentials (no password)')
|
|
esme_no_pwd.connect()
|
|
esme_no_pwd.disconnect()
|
|
|
|
log('Test with correct credentials (no password, non empty)')
|
|
esme_no_pwd.set_password('foobar')
|
|
esme_no_pwd.connect()
|
|
esme_no_pwd.disconnect()
|
|
|
|
log('Test with correct credentials')
|
|
esme.connect()
|
|
esme.disconnect()
|
|
|
|
log('Test with bad password, checking for failure')
|
|
correct_password = esme.password
|
|
new_password = 'barfoo' if correct_password == 'foobar' else 'foobar'
|
|
esme.set_password(new_password)
|
|
esme.run_method_expect_failure(SMPP_ESME_RINVPASWD, esme.connect)
|
|
esme.set_password(correct_password)
|
|
|
|
log('Test with bad system_id, checking for failure')
|
|
correct_system_id = esme.system_id
|
|
new_system_id = 'barfoo' if correct_system_id == 'foobar' else 'foobar'
|
|
esme.set_system_id(new_system_id)
|
|
esme.run_method_expect_failure(SMPP_ESME_RINVSYSID, esme.connect)
|
|
esme.set_system_id(correct_system_id)
|