Skip to content

Commit

Permalink
reject None for Netcore
Browse files Browse the repository at this point in the history
  • Loading branch information
smn committed Apr 8, 2014
1 parent 977df49 commit 2186619
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
5 changes: 5 additions & 0 deletions vumi/transports/netcore/netcore.py
Expand Up @@ -48,6 +48,11 @@ def render_POST(self, request):
return ('Not all expected parameters received. '
'Only allowing: %r, received: %r' % (
expected_keys, request.args.keys()))
param_values = [param[0] for param in request.args.values()]
if not all(param_values):
request.setResponseCode(http.BAD_REQUEST)
return ('Not all parameters have values. '
'Received: %r' % (param_values,))

self.handle_request(request)
return NOT_DONE_YET
Expand Down
17 changes: 17 additions & 0 deletions vumi/transports/netcore/tests/test_netcore.py
Expand Up @@ -51,6 +51,23 @@ def test_inbound_sms_failure(self):
self.assertEqual(
[], self.tx_helper.get_dispatched_inbound())

@inlineCallbacks
def test_inbound_missing_values(self):
transport = yield self.get_transport()
resp = yield request(transport, 'POST', {
'to_addr': '10010',
'from_addr': '8800000000',
'content': '', # Intentionally empty!
'source': 'sms',
'circle': 'of life',
})
self.assertEqual(resp.code, http.BAD_REQUEST)
self.assertEqual(resp.delivered_body, (
"Not all parameters have values. "
"Received: ['', 'sms', 'of life', '10010', '8800000000']"))
self.assertEqual(
[], self.tx_helper.get_dispatched_inbound())

@inlineCallbacks
def test_inbound_sms_success(self):
transport = yield self.get_transport()
Expand Down

0 comments on commit 2186619

Please sign in to comment.