def testRequestParser_choices_sensitive(self): req = Request.blank("/bubble?foo=BAT") parser = RequestParser() parser.add_argument("foo", choices=["bat"], case_sensitive=True), self.assertRaises(InvalidParameterValue, lambda: parser.parse_args(req))
def testRequestParser_choices(self): req = Request.blank("/bubble?foo=bar") parser = RequestParser() parser.add_argument("foo", choices=["bat"]), self.assertRaises(InvalidParameterValue, lambda: parser.parse_args(req))
def testRequestParser_parse_unicode(self): req = Request.blank("/bubble?foo=barß") parser = RequestParser() parser.add_argument("foo") args = parser.parse_args(req) self.assertEquals(args['foo'], u"barß")
def testRequestParser_choices_correct(self): req = Request.blank("/bubble?foo=bat") parser = RequestParser() parser.add_argument("foo", choices=["bat"]), args = parser.parse_args(req) self.assertEquals(args['foo'], "bat")
def testRequestParser_noParams_returnsNone(self): req = Request.blank('/') parser = RequestParser() parser.add_argument("foo") args = parser.parse_args(req) self.assertEqual(args['foo'], None)
def testRequestParser_parse_append_default(self): req = Request.blank("/bubble?") parser = RequestParser() parser.add_argument("foo", action="append"), args = parser.parse_args(req) self.assertEquals(args['foo'], None)
def testRequestParser_ignore(self): req = Request.blank("/bubble?foo=bar") parser = RequestParser() parser.add_argument("foo", type=int, ignore=True) args = parser.parse_args(req) self.assertEquals(args['foo'], None)
def testRequestParser_type_is_callable(self): req = Request.blank("/bubble?foo=1") parser = RequestParser() parser.add_argument("foo", type=lambda x: x*2, required=False) args = parser.parse_args(req) self.assertEqual(args['foo'], "11")
def testRequestParser_none(self): req = Request.blank("/bubble") parser = RequestParser() parser.add_argument("foo") args = parser.parse_args(req) self.assertEquals(args['foo'], None)
def testRequestParser_callable_default(self): req = Request.blank("/bubble") parser = RequestParser() parser.add_argument("foo", default=lambda: "bar") args = parser.parse_args(req) self.assertEquals(args['foo'], "bar")
def testRequestParser_default_append(self): req = Request.blank("/bubble") parser = RequestParser() parser.add_argument("foo", default="bar", action="append") args = parser.parse_args(req) self.assertEquals(args['foo'], "bar")
def testRequestParser_noParamsWithDefault_returnsDefault(self): req = Request.blank('/') parser = RequestParser() parser.add_argument('foo', default='faa') args = parser.parse_args(req) self.assertEqual(args['foo'], 'faa')
def testRequestParser_parse_dest(self): req = Request.blank("/bubble?foo=bar") parser = RequestParser() parser.add_argument("foo", dest="bat") args = parser.parse_args(req) self.assertEquals(args['bat'], "bar")
def testRequestParser_parse_append_single(self): req = Request.blank("/bubble?foo=bar") parser = RequestParser() parser.add_argument("foo", action="append"), args = parser.parse_args(req) self.assertEquals(args['foo'], ["bar"])
def testRequestParser_json_body(self): req = Request.blank('/', POST='{ "foo": "bar" }', environ={ 'CONTENT_TYPE': 'application/json;"', }) parser = RequestParser() parser.add_argument("foo", type=lambda x: x*2, required=False) args = parser.parse_args(req) self.assertEqual(args['foo'], "barbar")
def testRequestParser_replace_argument(self): req = Request.blank("/bubble?foo=baz") parser = RequestParser() parser.add_argument('foo', type=int) parser_copy = parser.copy() parser_copy.replace_argument('foo', type=str) args = parser_copy.parse_args(req) self.assertEquals(args['foo'], u'baz')
def testRequestParser_choices_types_int(self): parser = RequestParser() parser.add_argument("foo", type=int, choices=[1, 2, 3], location='json') req = Request.blank('/stam', POST=json.dumps(dict(foo=5)), environ={ 'CONTENT_TYPE': 'application/json;"', }) self.assertRaises(InvalidParameterValue, parser.parse_args, req)
def testRequestParser_type_is_decimal(self): import decimal parser = RequestParser() parser.add_argument("foo", type=decimal.Decimal, location="json") req = Request.blank('/stam', POST=json.dumps(dict(foo="1.0025")), environ={ 'CONTENT_TYPE': 'application/json;"', }) args = parser.parse_args(req) self.assertEquals(args['foo'], decimal.Decimal("1.0025"))
def test_int_range_choice_types(self): parser = RequestParser() parser.add_argument("foo", type=int, choices=range(100), location='json') req = Request.blank('/stam', POST=json.dumps(dict(foo=101)), environ={ 'CONTENT_TYPE': 'application/json;"', }) self.assertRaises(InvalidParameterValue, parser.parse_args, req) req = Request.blank('/stam', POST=json.dumps(dict(foo=99)), environ={ 'CONTENT_TYPE': 'application/json;"', }) args = parser.parse_args(req) self.assertEqual(99, args.get('foo'))
def testRequestParser_copy(self): req = Request.blank("/bubble?foo=101&bar=baz") parser = RequestParser() foo_arg = Argument('foo', type=int) parser.args.append(foo_arg) parser_copy = parser.copy() # Deepcopy should create a clone of the argument object instead of # copying a reference to the new args list self.assertFalse(foo_arg in parser_copy.args) # Args added to new parser should not be added to the original bar_arg = Argument('bar') parser_copy.args.append(bar_arg) self.assertFalse(bar_arg in parser.args) args = parser_copy.parse_args(req) self.assertEquals(args['foo'], 101) self.assertEquals(args['bar'], u'baz')
def testRequestParser_parse_required(self): req = Request.blank("/bubble") parser = RequestParser() parser.add_argument("foo", required=True) message = '' try: parser.parse_args(req) except MissingParameterError as e: message = e.message self.assertEquals(message, u'Missing required parameter foo in json or params') parser = RequestParser() parser.add_argument("bar", required=True, location=['values', 'cookies']) try: parser.parse_args(req) except Exception as e: message = e.message self.assertEquals(message, u"Missing required parameter bar in ['values', 'cookies']")
def testRequestParser_choices_insensitive(self): req = Request.blank("/bubble?foo=BAT") parser = RequestParser() parser.add_argument("foo", choices=["bat"], case_sensitive=False), args = parser.parse_args(req) self.assertEquals('bat', args.get('foo')) # both choices and args are case_insensitive req = Request.blank("/bubble?foo=bat") parser = RequestParser() parser.add_argument("foo", choices=["BAT"], case_sensitive=False), args = parser.parse_args(req) self.assertEquals('bat', args.get('foo'))
def testRequestParser_type_is_bool(self): import decimal parser = RequestParser() parser.add_argument("foo", type=bool) args = parser.parse_args(Request.blank('/stam?foo=true')) self.assertEquals(args['foo'], True) args = parser.parse_args(Request.blank('/stam?foo=True')) self.assertEquals(args['foo'], True) args = parser.parse_args(Request.blank('/stam?foo=t')) self.assertEquals(args['foo'], True) args = parser.parse_args(Request.blank('/stam?foo=1')) self.assertEquals(args['foo'], True) args = parser.parse_args(Request.blank('/stam?foo=f')) self.assertEquals(args['foo'], False) args = parser.parse_args(Request.blank('/stam?foo=0')) self.assertEquals(args['foo'], False) args = parser.parse_args(Request.blank('/stam?foo=false')) self.assertEquals(args['foo'], False) args = parser.parse_args(Request.blank('/stam?foo=False')) self.assertEquals(args['foo'], False)