Skip to content

Commit

Permalink
Clean up Vumi Bridge transport more carefully.
Browse files Browse the repository at this point in the history
  • Loading branch information
hodgestar committed Apr 14, 2016
1 parent 9964228 commit 4a17c5c
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 6 deletions.
15 changes: 10 additions & 5 deletions vumi/transports/vumi_bridge/tests/test_vumi_bridge.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def setUp(self):
self.add_cleanup(self.finish_requests)

@inlineCallbacks
def get_transport(self, **config):
def get_transport(self, start=True, **config):
defaults = {
'account_key': 'account-key',
'conversation_key': 'conversation-key',
Expand All @@ -36,8 +36,8 @@ def get_transport(self, **config):
defaults.update(config)
transport = yield self.tx_helper.get_transport(defaults, start=False)
transport.agent_factory = self.fake_http.get_agent
yield transport.startWorker()
yield self.setup_transport(transport)
if start:
yield transport.startWorker()
returnValue(transport)

def setup_transport(self, transport):
Expand Down Expand Up @@ -67,8 +67,8 @@ class TestGoConversationTransport(TestGoConversationTransportBase):
def test_server_settings_without_configs(self):
return self.assertFailure(self.get_transport(), ConfigError)

def get_configured_transport(self):
return self.get_transport(web_path='test', web_port='0')
def get_configured_transport(self, start=True):
return self.get_transport(start=start, web_path='test', web_port='0')

def post_msg(self, url, msg_json):
data = msg_json.encode('utf-8')
Expand Down Expand Up @@ -228,3 +228,8 @@ def test_sending_bad_messages(self):
self.assertEquals(status['type'], 'bad_request')
self.assertEquals(status['message'],
'Message submission rejected by Vumi Go')

@inlineCallbacks
def test_teardown_before_start(self):
transport = yield self.get_configured_transport(start=False)
yield transport.teardown_transport()
9 changes: 8 additions & 1 deletion vumi/transports/vumi_bridge/vumi_bridge.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,9 @@ class GoConversationTransport(GoConversationTransportBase):

CONFIG_CLASS = VumiBridgeTransportConfig

redis = None
web_resource = None

@inlineCallbacks
def setup_transport(self):
config = self.get_static_config()
Expand All @@ -209,8 +212,12 @@ def setup_transport(self):
], config.web_port)
self.status_detect = StatusEdgeDetector()

@inlineCallbacks
def teardown_transport(self):
return self.web_resource.loseConnection()
if self.web_resource is not None:
yield self.web_resource.loseConnection()
if self.redis is not None:
self.redis.close_manager()

def get_transport_url(self, suffix=''):
"""
Expand Down

0 comments on commit 4a17c5c

Please sign in to comment.