diff --git a/txssmi/builder.py b/txssmi/builder.py index cd2e504..e0e7fc9 100644 --- a/txssmi/builder.py +++ b/txssmi/builder.py @@ -42,16 +42,13 @@ def __init__(self, **kwargs): def __iter__(self): parts = [SSMI_HEADER, self.command_id] parts.extend([self.values.get(fn) for fn in self.fields]) - return iter(map(unicode, parts)) - - def __unicode__(self): - return u','.join(self) + return iter(parts) def __str__(self): - return unicode(self).encode('utf-8') + return ','.join(self) def __eq__(self, other): - return unicode(other) == unicode(self) + return str(other) == str(self) def __getattr__(self, attr): if attr in self.fields: diff --git a/txssmi/commands.py b/txssmi/commands.py index 929ea5e..059d233 100644 --- a/txssmi/commands.py +++ b/txssmi/commands.py @@ -5,9 +5,9 @@ Login = SSMIRequest.create('LOGIN') -SendSMS = SSMIRequest.create('SEND_SMS', {'validity': 0}) +SendSMS = SSMIRequest.create('SEND_SMS', {'validity': '0'}) SendBinarySMS = SSMIRequest.create('SEND_BINARY_SMS', { - 'validity': 0, + 'validity': '0', 'coding': CODING_7BIT, 'pid': PROTOCOL_STANDARD, }) diff --git a/txssmi/protocol.py b/txssmi/protocol.py index f9c4298..0e14c32 100644 --- a/txssmi/protocol.py +++ b/txssmi/protocol.py @@ -1,4 +1,5 @@ # -*- test-case-name: txssmi.tests.test_protocol -*- +# -*- coding: utf-8 -*- import random from collections import defaultdict @@ -25,7 +26,7 @@ class SSMIProtocol(LineReceiver): - delimeter = '\r' + delimiter = b'\r' noisy = False clock = reactor @@ -36,17 +37,22 @@ def __init__(self): self.imsi_lookup_reply_map = defaultdict(lambda: DeferredQueue()) self.link_check = LoopingCall(self.send_link_request) self.link_check.clock = self.clock - self.imsi_lookups = {} + + def connectionMade(self): + log.msg('Connection made.') + + def connectionLost(self, reason): + log.msg('Connection lost: %s' % (reason,)) def emit(self, prefix, msg): if self.noisy: - log.msg('%s %s' % (prefix, msg)) + log.msg('%s %r' % (prefix, msg)) def lineReceived(self, line): command = SSMIResponse.parse(line) - self.emit('<<', str(command)) + self.emit('<<', command) handler = getattr(self, 'handle_%s' % (command.command_name,)) - return maybeDeferred(handler, command) + maybeDeferred(handler, command) def send_command(self, command): self.emit('>>', str(command)) @@ -80,13 +86,13 @@ def cb(cmd): d.addCallback(cb) return d - def send_message(self, msisdn, message, validity=0): + def send_message(self, msisdn, message, validity='0'): d = self.send_command( SendSMS(msisdn=msisdn, message=message, validity=validity)) d.addCallback(lambda cmd: self.wait_for_reply(cmd.msisdn)) return d - def send_binary_message(self, msisdn, hex_message, validity=0, + def send_binary_message(self, msisdn, hex_message, validity='0', protocol_id=PROTOCOL_STANDARD, coding=CODING_7BIT): d = self.send_command( @@ -128,7 +134,7 @@ def send_mms_message(self, msisdn, subject, name, content): def imsi_lookup(self, msisdn, sequence=None, imsi=None): if sequence is None: - sequence = unicode(random.randint(0, 1000)) + sequence = str(random.randint(0, 1000)) d = self.send_command(IMSILookup(sequence=sequence, msisdn=msisdn, imsi=imsi)) deferred = Deferred() diff --git a/txssmi/tests/test_protocol.py b/txssmi/tests/test_protocol.py index 7a6ff5f..814531f 100644 --- a/txssmi/tests/test_protocol.py +++ b/txssmi/tests/test_protocol.py @@ -64,13 +64,13 @@ def test_authenticate(self): d = self.protocol.authenticate('username', 'password') [cmd] = yield self.receive(1) self.assertEqual(cmd.command_name, 'LOGIN') - yield self.send(Ack(ack_type=1)) + yield self.send(Ack(ack_type='1')) self.assertTrue((yield d)) self.assertTrue(self.protocol.authenticated) @inlineCallbacks def test_send_message(self): - self.protocol.send_message('2700000000', 'hi there!', validity=2) + self.protocol.send_message('2700000000', 'hi there!', validity='2') [cmd] = yield self.receive(1) self.assertEqual(cmd.command_name, 'SEND_SMS') self.assertEqual(cmd.msisdn, '2700000000')