Skip to content

Commit

Permalink
Publish a status event when unbinding for SMPP transport
Browse files Browse the repository at this point in the history
  • Loading branch information
justinvdm committed Oct 20, 2015
1 parent 233c837 commit 278396c
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 0 deletions.
1 change: 1 addition & 0 deletions vumi/transports/smpp/protocol.py
Expand Up @@ -574,6 +574,7 @@ def query_sm(self,
def unbind(self):
sequence_number = yield self.sequence_generator.next()
self.send_pdu(Unbind(sequence_number))
yield self.service.on_smpp_unbinding()
returnValue([sequence_number])

def handle_unbind_resp(self, pdu):
Expand Down
4 changes: 4 additions & 0 deletions vumi/transports/smpp/smpp_service.py
Expand Up @@ -201,6 +201,10 @@ def on_smpp_bind(self):
def on_smpp_binding(self):
yield self.transport.on_smpp_binding()

@inlineCallbacks
def on_smpp_unbinding(self):
yield self.transport.on_smpp_unbinding()

@inlineCallbacks
def on_smpp_bind_timeout(self):
yield self.transport.on_smpp_bind_timeout()
Expand Down
11 changes: 11 additions & 0 deletions vumi/transports/smpp/smpp_transport.py
Expand Up @@ -309,6 +309,10 @@ def _reject_for_invalid_address(self, message, field):
def on_smpp_binding(self):
yield self.publish_status_binding()

@inlineCallbacks
def on_smpp_unbinding(self):
yield self.publish_status_unbinding()

@inlineCallbacks
def on_smpp_bind(self):
yield self.publish_status_bound()
Expand Down Expand Up @@ -350,6 +354,13 @@ def publish_status_binding(self):
type='binding',
message='Binding')

def publish_status_unbinding(self):
return self.publish_status(
status='down',
component='smpp',
type='unbinding',
message='Unbinding')

def publish_status_bound(self):
return self.publish_status(
status='ok',
Expand Down
3 changes: 3 additions & 0 deletions vumi/transports/smpp/tests/test_protocol.py
Expand Up @@ -45,6 +45,9 @@ def on_connection_lost(self, reason):
def on_smpp_binding(self):
pass

def on_smpp_unbinding(self):
pass

def on_smpp_bind(self):
self.paused = False

Expand Down
3 changes: 3 additions & 0 deletions vumi/transports/smpp/tests/test_smpp_service.py
Expand Up @@ -48,6 +48,9 @@ def unpause_connectors(self):
def on_smpp_binding(self):
pass

def on_smpp_unbinding(self):
pass

def on_smpp_bind(self):
pass

Expand Down
12 changes: 12 additions & 0 deletions vumi/transports/smpp/tests/test_smpp_transport.py
Expand Up @@ -1731,6 +1731,18 @@ def test_connect_status(self):
self.assertEqual(msg['type'], 'binding')
self.assertEqual(msg['message'], 'Binding')

@inlineCallbacks
def test_unbinding_status(self):
transport = yield self.get_transport({'publish_status': True})
self.tx_helper.clear_dispatched_statuses()
yield transport.service.get_protocol().unbind()

[msg] = self.tx_helper.get_dispatched_statuses()
self.assertEqual(msg['status'], 'down')
self.assertEqual(msg['component'], 'smpp')
self.assertEqual(msg['type'], 'unbinding')
self.assertEqual(msg['message'], 'Unbinding')

@inlineCallbacks
def test_bind_status(self):
yield self.get_transport({'publish_status': True}, bind=False)
Expand Down

0 comments on commit 278396c

Please sign in to comment.