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
This commit is contained in:
parent
b8011695b8
commit
996651a3a3
|
@ -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
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
||||
|
|
|
@ -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 <neels@hofmeyr.de>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
Loading…
Reference in New Issue