Files
deb-python-falcon/tests/test_query_params.py
Kurt Griffiths c94b924faa feat(Request): Make list param parsing explicity
The idea is not to have to pay for what you don't use or want. Also
makes this consistent with req.get_param_as_int.

BREAKING CHANGE: get_param will no longer return lists for
comma-separated parameter values. Use get_param_as_list instead.

Implements #18
2013-02-04 17:20:15 -05:00

54 lines
1.9 KiB
Python

from . import helpers
class TestQueryParams(helpers.TestSuite):
def prepare(self):
self.resource = helpers.TestResource()
self.api.add_route('/', self.resource)
def test_none(self):
query_string = ''
self._simulate_request('/', query_string=query_string)
req = self.resource.req
self.assertEquals(req.get_param('marker'), None)
self.assertEquals(req.get_param('limit'), None)
def test_simple(self):
query_string = 'marker=deadbeef&limit=25'
self._simulate_request('/', query_string=query_string)
req = self.resource.req
self.assertEquals(req.get_param('marker'), 'deadbeef')
self.assertEquals(req.get_param('limit'), '25')
def test_int(self):
query_string = 'marker=deadbeef&limit=25'
self._simulate_request('/', query_string=query_string)
req = self.resource.req
self.assertEquals(req.get_param_as_int('marker'), None)
self.assertEquals(req.get_param_as_int('limit'), 25)
def test_list_type(self):
query_string = 'colors=red,green,blue&limit=1'
self._simulate_request('/', query_string=query_string)
req = self.resource.req
self.assertEquals(req.get_param('colors'), 'red,green,blue')
self.assertEquals(req.get_param_as_list('colors'),
['red', 'green', 'blue'])
self.assertEquals(req.get_param_as_list('limit'), ['1'])
self.assertEquals(req.get_param_as_list('marker'), None)
def test_bogus_input(self):
query_string = 'colors=red,green,&limit=1&pickle'
self._simulate_request('/', query_string=query_string)
req = self.resource.req
self.assertEquals(req.get_param_as_list('colors'),
['red', 'green', ''])
self.assertEquals(req.get_param('limit'), '1')
self.assertEquals(req.get_param('pickle'), None)