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
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 <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