This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Review at https://gerrit.osmocom.org/3129
esme: run_method_expect_failure: Check failure in server response
We can now enable the esme_ms_sms test part which asserts that sending
an SMS to an msisdn with unknown destination triggers an error.
Change-Id: Ia2c0c325fee14143deca8310312fc530cd9ce92e
---
M src/osmo_gsm_tester/esme.py
M suites/smpp/esme_ms_sms.py
2 files changed, 17 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/29/3129/1
diff --git a/src/osmo_gsm_tester/esme.py b/src/osmo_gsm_tester/esme.py
index f92863d..5d3bf37 100644
--- a/src/osmo_gsm_tester/esme.py
+++ b/src/osmo_gsm_tester/esme.py
@@ -108,14 +108,26 @@
self.client.disconnect()
self.connected = False
- def run_method_expect_failure(self, errcode, method, *args):
+ # Used in 'run_method_expect_failure', defined here because lambda functions cannot contain assigments:
+ def trigger_message_sent(self):
+ self.message_sent = True
+
+ def run_method_expect_failure(self, errcode, method, *args, check_smsc_resp=False):
+ old_func = self.client.message_sent_handler
try:
method(*args)
+ if check_smsc_resp: # failure is contained in SMS response to our query, wait for it
+ self.message_sent = False
+ self.client.set_message_sent_handler(self.trigger_message_sent)
+ event_loop.wait(self, lambda: self.message_sent == True, timeout=10)
#it should not succeed, raise an exception:
raise log.Error('SMPP Failure: %s should have failed with SMPP error %d (%s) but succeeded.' % (method, errcode, smpplib.consts.DESCRIPTIONS[errcode]))
except smpplib.exceptions.PDUError as e:
if e.args[1] != errcode:
raise e
+ self.dbg('Expected failure triggered: %d' % errcode)
+ finally:
+ self.client.set_message_sent_handler(old_func)
def sms_send(self, sms_obj):
parts, encoding_flag, msg_type_flag = smpplib.gsm.make_parts(str(sms_obj))
diff --git a/suites/smpp/esme_ms_sms.py b/suites/smpp/esme_ms_sms.py
index bc9d7d4..b6e7868 100755
--- a/suites/smpp/esme_ms_sms.py
+++ b/suites/smpp/esme_ms_sms.py
@@ -41,9 +41,9 @@
# FIXME: This test is not failing with error but succeeds, need to check why: (forward vs store policy?)
-# wrong_msisdn = ms.msisdn + esme.msisdn
-# print('sending third sms (with wrong msisdn %s)' % wrong_msisdn)
-# msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
-# esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send, msg)
+wrong_msisdn = ms.msisdn + esme.msisdn
+print('sending third sms (with wrong msisdn %s)' % wrong_msisdn)
+msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
+esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send, msg, check_smsc_resp=True)
esme.disconnect()
--
To view, visit https://gerrit.osmocom.org/3129
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia2c0c325fee14143deca8310312fc530cd9ce92e
Gerrit-PatchSet: 1
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>