test(Request): 100% code coverage

This commit is contained in:
Kurt Griffiths
2013-02-11 16:52:26 -05:00
parent 0bebd0f23f
commit 1cb2ab0452
4 changed files with 29 additions and 10 deletions

View File

@@ -178,7 +178,7 @@ class HTTPPreconditionFailed(HTTPError):
class HTTPUnsupportedMediaType(HTTPError):
"""415 Unsupported Media Type
Sets title to "Unsupported Media Type".
Sets title to "Unsupported media type".
Args:
description: Human-friendly description of the error, along with a
@@ -188,7 +188,7 @@ class HTTPUnsupportedMediaType(HTTPError):
"""
def __init__(self, description, **kwargs):
HTTPError.__init__(self, status.HTTP_415, 'Unsupported Media Type',
HTTPError.__init__(self, status.HTTP_415, 'Unsupported media type',
description, **kwargs)
@@ -220,8 +220,7 @@ class HTTPUpgradeRequired(HTTPError):
"""
def __init__(self, title, description, **kwargs):
HTTPError.__init__(self, status.HTTP_426, 'Upgrade Required',
description, **kwargs)
HTTPError.__init__(self, status.HTTP_426, title, description, **kwargs)
class HTTPInternalServerError(HTTPError):

View File

@@ -238,8 +238,8 @@ class Request(object):
if not required:
return default
raise HTTPBadRequest('Missing header',
'The "' + name + '" header is required.')
description = 'The "' + name + '" header is required.'
raise HTTPBadRequest('Missing header', description)
def get_param(self, name, default=None, required=False):
"""Return the value of a query string parameter as a string
@@ -269,8 +269,8 @@ class Request(object):
if not required:
return default
raise HTTPBadRequest('Missing query parameter',
'The "' + name + '" query parameter is required.')
message = 'The "' + name + '" query parameter is required.'
raise HTTPBadRequest('Missing query parameter', message)
def get_param_as_int(self, name, default=None, required=False):
"""Return the value of a query string parameter as an int
@@ -306,8 +306,8 @@ class Request(object):
if not required:
return default
raise HTTPBadRequest('Missing query parameter',
'The "' + name + '" query parameter is required.')
message = 'The "' + name + '" query parameter is required.'
raise HTTPBadRequest('Missing query parameter', message)
def get_param_as_list(self, name, default=None, required=False):
"""Return the value of a query string parameter as an int

View File

@@ -100,6 +100,13 @@ class TestHeaders(testing.TestSuite):
value = self.resource.req.get_header('X-Not-Found', '876')
self.assertEquals(value, '876')
def test_required_header(self):
self._simulate_request(self.test_route)
self.assertRaises(falcon.HTTPBadRequest,
self.resource.req.get_header, 'X-Not-Found',
required=True)
def test_prefer_host_header(self):
self._simulate_request(self.test_route)

View File

@@ -1,3 +1,4 @@
import falcon
import falcon.testing as testing
@@ -23,6 +24,18 @@ class TestQueryParams(testing.TestSuite):
self.assertEquals(req.get_param('marker'), 'deadbeef')
self.assertEquals(req.get_param('limit'), '25')
def test_required(self):
query_string = ''
self._simulate_request('/', query_string=query_string)
req = self.resource.req
self.assertRaises(falcon.HTTPBadRequest, req.get_param,
'marker', required=True)
self.assertRaises(falcon.HTTPBadRequest, req.get_param_as_int,
'marker', required=True)
self.assertRaises(falcon.HTTPBadRequest, req.get_param_as_list,
'marker', required=True)
def test_int(self):
query_string = 'marker=deadbeef&limit=25'
self._simulate_request('/', query_string=query_string)