From 996651a3a3e451d978a017f964bacccc0c19ed0f Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Tue, 30 May 2017 15:13:29 +0200 Subject: Move Sms class to a separate module Preparation for following commits to add smpp support, as we will have a class SmppClient with a method accepting an Sms object to send it. Change-Id: I1f28e14e963abb64df687b69d54975be2aeb0d0d --- selftest/sms_test.py | 24 +++++++++---------- src/osmo_gsm_tester/ofono_client.py | 42 ++++++-------------------------- src/osmo_gsm_tester/sms.py | 48 +++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 47 deletions(-) create mode 100644 src/osmo_gsm_tester/sms.py diff --git a/selftest/sms_test.py b/selftest/sms_test.py index 25fb551..ce81c3e 100755 --- a/selftest/sms_test.py +++ b/selftest/sms_test.py @@ -1,20 +1,20 @@ #!/usr/bin/env python3 import _prep -from osmo_gsm_tester import ofono_client +from osmo_gsm_tester import sms -print(ofono_client.Sms()) -print(ofono_client.Sms()) -print(ofono_client.Sms()) -sms = ofono_client.Sms('123', '456') -print(str(sms)) +print(sms.Sms()) +print(sms.Sms()) +print(sms.Sms()) +msg = sms.Sms('123', '456') +print(str(msg)) -sms2 = ofono_client.Sms('123', '456') -print(str(sms2)) -assert sms != sms2 +msg2 = sms.Sms('123', '456') +print(str(msg2)) +assert msg != msg2 -sms2.msg = str(sms.msg) -print(str(sms2)) -assert sms == sms2 +msg2.msg = str(msg.msg) +print(str(msg2)) +assert msg == msg2 # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/ofono_client.py b/src/osmo_gsm_tester/ofono_client.py index 5494ec2..0525019 100644 --- a/src/osmo_gsm_tester/ofono_client.py +++ b/src/osmo_gsm_tester/ofono_client.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from . import log, test, util, event_loop +from . import log, test, util, event_loop, sms from pydbus import SystemBus, Variant import time @@ -338,20 +338,20 @@ class Modem(log.Origin): tokens.append('to ' + to_msisdn_or_modem.name()) else: to_msisdn = str(to_msisdn_or_modem) - sms = Sms(self.msisdn, to_msisdn, 'from ' + self.name(), *tokens) - self.log('sending sms to MSISDN', to_msisdn, sms=sms) + msg = sms.Sms(self.msisdn, to_msisdn, 'from ' + self.name(), *tokens) + self.log('sending sms to MSISDN', to_msisdn, sms=msg) mm = self.dbus.interface(I_SMS) - mm.SendMessage(to_msisdn, str(sms)) - return sms + mm.SendMessage(to_msisdn, str(msg)) + return msg def _on_incoming_message(self, message, info): self.log('Incoming SMS:', repr(message)) self.dbg(info=info) self.sms_received_list.append((message, info)) - def sms_was_received(self, sms): + def sms_was_received(self, sms_obj): for msg, info in self.sms_received_list: - if sms.matches(msg): + if sms_obj.matches(msg): self.log('SMS received as expected:', repr(msg)) self.dbg(info=info) return True @@ -364,32 +364,4 @@ class Modem(log.Origin): def log_info(self, *args, **kwargs): self.log(self.info(*args, **kwargs)) -class Sms: - _last_sms_idx = 0 - msg = None - - def __init__(self, from_msisdn=None, to_msisdn=None, *tokens): - Sms._last_sms_idx += 1 - msgs = ['message nr. %d' % Sms._last_sms_idx] - msgs.extend(tokens) - if from_msisdn: - msgs.append('from %s' % from_msisdn) - if to_msisdn: - msgs.append('to %s' % to_msisdn) - self.msg = ', '.join(msgs) - - def __str__(self): - return self.msg - - def __repr__(self): - return repr(self.msg) - - def __eq__(self, other): - if isinstance(other, Sms): - return self.msg == other.msg - return inself.msg == other - - def matches(self, msg): - return self.msg == msg - # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/sms.py b/src/osmo_gsm_tester/sms.py new file mode 100644 index 0000000..64eca5a --- /dev/null +++ b/src/osmo_gsm_tester/sms.py @@ -0,0 +1,48 @@ +# osmo_gsm_tester: DBUS client to talk to ofono +# +# Copyright (C) 2016-2017 by sysmocom - s.f.m.c. GmbH +# +# Author: Neels Hofmeyr +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +class Sms: + _last_sms_idx = 0 + msg = None + + def __init__(self, from_msisdn=None, to_msisdn=None, *tokens): + Sms._last_sms_idx += 1 + msgs = ['message nr. %d' % Sms._last_sms_idx] + msgs.extend(tokens) + if from_msisdn: + msgs.append('from %s' % from_msisdn) + if to_msisdn: + msgs.append('to %s' % to_msisdn) + self.msg = ', '.join(msgs) + + def __str__(self): + return self.msg + + def __repr__(self): + return repr(self.msg) + + def __eq__(self, other): + if isinstance(other, Sms): + return self.msg == other.msg + return inself.msg == other + + def matches(self, msg): + return self.msg == msg + +# vim: expandtab tabstop=4 shiftwidth=4 -- cgit v1.2.3