refactor(Request): Rename get_header and get_param to try_*

In preparation for adding variants of these methods that raise
exceptions, rename these to make it obvious that they return default
values if the specified header or param is not found in the request.
This commit is contained in:
Kurt Griffiths
2013-01-09 15:13:36 -05:00
parent cdbb78dcc8
commit 2783c44af1
6 changed files with 28 additions and 28 deletions

View File

@@ -56,7 +56,7 @@ class Request:
_headers['HOST'] = host
def get_header(self, name, default=None):
def try_get_header(self, name, default=None):
"""Return a header value as a string
name -- Header name, case-insensitive (e.g., 'Content-Type')
@@ -70,10 +70,10 @@ class Request:
# This will be faster, assuming that most headers are looked
# up only once, and not all headers will be requested.
return self._headers[name.upper().replace('-', '_')]
except KeyError as e:
except KeyError:
return default
def get_param(self, name, default=None):
def try_get_param(self, name, default=None):
"""Return a URI parameter value as a string
name -- Parameter name as specified in the route template. Note that

View File

@@ -35,7 +35,7 @@ class TestHeaders(helpers.TestSuite):
self._simulate_request(self.test_route)
# Make sure we picked up host from HTTP_HOST, not SERVER_NAME
host = self.reqhandler.req.get_header('host')
host = self.reqhandler.req.try_get_header('host')
self.assertEquals(host, 'falconer')
def test_host_fallback(self):
@@ -43,7 +43,7 @@ class TestHeaders(helpers.TestSuite):
self._simulate_request(self.test_route, protocol='HTTP/1.0')
# Make sure we picked up host from HTTP_HOST, not SERVER_NAME
host = self.reqhandler.req.get_header('host')
host = self.reqhandler.req.try_get_header('host')
self.assertEquals(host, 'localhost')
def test_host_fallback_port8000(self):
@@ -52,7 +52,7 @@ class TestHeaders(helpers.TestSuite):
port='8000')
# Make sure we picked up host from HTTP_HOST, not SERVER_NAME
host = self.reqhandler.req.get_header('host')
host = self.reqhandler.req.try_get_header('host')
self.assertEquals(host, 'localhost:8000')
def test_no_body_on_1xx(self):
@@ -103,7 +103,7 @@ class TestHeaders(helpers.TestSuite):
self._simulate_request(self.test_route, headers=req_headers)
for name, expected_value in req_headers.iteritems():
actual_value = self.reqhandler.req.get_header(name)
actual_value = self.reqhandler.req.try_get_header(name)
self.assertEquals(actual_value, expected_value)
def test_passthrough_resp_headers(self):

View File

@@ -14,30 +14,30 @@ class TestQueryParams(helpers.TestSuite):
self._simulate_request('/', query_string=query_string)
req = self.reqhandler.req
self.assertEquals(req.get_param('marker'), None)
self.assertEquals(req.get_param('limit'), None)
self.assertEquals(req.try_get_param('marker'), None)
self.assertEquals(req.try_get_param('limit'), None)
def test_simple(self):
query_string = 'marker=deadbeef&limit=25'
self._simulate_request('/', query_string=query_string)
req = self.reqhandler.req
self.assertEquals(req.get_param('marker'), 'deadbeef')
self.assertEquals(req.get_param('limit'), '25')
self.assertEquals(req.try_get_param('marker'), 'deadbeef')
self.assertEquals(req.try_get_param('limit'), '25')
def test_list_type(self):
query_string = 'colors=red,green,blue&limit=1'
self._simulate_request('/', query_string=query_string)
req = self.reqhandler.req
self.assertEquals(req.get_param('colors'), ['red', 'green', 'blue'])
self.assertEquals(req.get_param('limit'), '1')
self.assertEquals(req.try_get_param('colors'), ['red', 'green', 'blue'])
self.assertEquals(req.try_get_param('limit'), '1')
def test_bogus_input(self):
query_string = 'colors=red,green,&limit=1&pickle'
self._simulate_request('/', query_string=query_string)
req = self.reqhandler.req
self.assertEquals(req.get_param('colors'), ['red', 'green', ''])
self.assertEquals(req.get_param('limit'), '1')
self.assertEquals(req.get_param('pickle'), None)
self.assertEquals(req.try_get_param('colors'), ['red', 'green', ''])
self.assertEquals(req.try_get_param('limit'), '1')
self.assertEquals(req.try_get_param('pickle'), None)

View File

@@ -20,7 +20,7 @@ class TestReqVars(helpers.TestSuite):
req = self.req
scheme = req.protocol
host = req.get_header('host')
host = req.try_get_header('host')
app = req.app
path = req.path
query_string = req.query_string
@@ -40,7 +40,7 @@ class TestReqVars(helpers.TestSuite):
self.assertEquals(self.req.path, '/')
def test_content_type(self):
self.assertEquals(self.req.get_header('content-type'), 'text/plain')
self.assertEquals(self.req.try_get_header('content-type'), 'text/plain')
def test_content_length(self):
self.assertEquals(self.req.get_header('content-length'), '4829')
self.assertEquals(self.req.try_get_header('content-length'), '4829')

View File

@@ -34,7 +34,7 @@ class TestRequestBody(helpers.TestSuite):
self._simulate_request('', body=expected_body, headers=headers)
content_len = self.reqhandler.req.get_header('content-length')
content_len = self.reqhandler.req.try_get_header('content-length')
self.assertEqual(content_len, str(expected_len))
stream = self.reqhandler.req.body

View File

@@ -13,7 +13,7 @@ class TestUriTemplates(helpers.TestSuite):
self.assertTrue(self.reqhandler.called)
req = self.reqhandler.req
self.assertEquals(req.get_param('id'), None)
self.assertEquals(req.try_get_param('id'), None)
def test_no_vars(self):
self.api.add_route('/hello/world', self.reqhandler)
@@ -22,7 +22,7 @@ class TestUriTemplates(helpers.TestSuite):
self.assertTrue(self.reqhandler.called)
req = self.reqhandler.req
self.assertEquals(req.get_param('world'), None)
self.assertEquals(req.try_get_param('world'), None)
def test_single(self):
self.api.add_route('/widgets/{id}', self.reqhandler)
@@ -31,8 +31,8 @@ class TestUriTemplates(helpers.TestSuite):
self.assertTrue(self.reqhandler.called)
req = self.reqhandler.req
self.assertEquals(req.get_param('id'), '123')
self.assertEquals(req.get_param('Id'), None)
self.assertEquals(req.try_get_param('id'), '123')
self.assertEquals(req.try_get_param('Id'), None)
def test_single_trailing_slash(self):
self.api.add_route('/widgets/{id}/', self.reqhandler)
@@ -44,7 +44,7 @@ class TestUriTemplates(helpers.TestSuite):
self.assertTrue(self.reqhandler.called)
req = self.reqhandler.req
self.assertEquals(req.get_param('id'), '123')
self.assertEquals(req.try_get_param('id'), '123')
def test_multiple(self):
self.api.add_route('/messages/{Id}/names/{Name}', self.reqhandler)
@@ -56,6 +56,6 @@ class TestUriTemplates(helpers.TestSuite):
self.assertTrue(self.reqhandler.called)
req = self.reqhandler.req
self.assertEquals(req.get_param('Id'), test_id)
self.assertEquals(req.get_param('Name'), test_name)
self.assertEquals(req.get_param('name'), None)
self.assertEquals(req.try_get_param('Id'), test_id)
self.assertEquals(req.try_get_param('Name'), test_name)
self.assertEquals(req.try_get_param('name'), None)