+
+ def test_ParamsParser(self):
+ from urllib.parse import urlencode
+ q = urlencode({'is_foo': 'foo', 'is_whitespace': '', 'is_None': None})
+ c = {'is_bar': 'bar'}
+ p = ParamsParser(q, c)
+ # check basic retrieval and default behavior
+ self.assertEqual(p.get('is_foo', None), 'foo')
+ self.assertEqual(p.get('missing', None), None)
+ self.assertEqual(p.get('missing', 'default'), 'default')
+ # check handling of empty and None values
+ self.assertEqual(p.get('missing', ''), '')
+ self.assertEqual(p.get('is_whitespace', None), '')
+ self.assertEqual(p.get('is_None', None), 'None') # TODO: unwanted behavior, or urlencode fault?
+ # check retrieval and setting of cookied values
+ self.assertEqual(p.get_cookied('missing', None), None)
+ self.assertEqual(c['missing'], None)
+ self.assertEqual(p.get_cookied('missing', 'default'), None)
+ self.assertEqual(p.get_cookied('is_bar', None), 'bar')