Beispiel #1
0
    def test_input_category_types(self):
        cat = input_categories.URL_PARAMS
        test_input = dict(field='something')

        # URL_PARAMS
        field = BaseField('field', required=True, arg_type=input_categories.URL_PARAMS)
        req = RequestContainer(url_params=test_input)
        url, query, body = translate_fields(req, fields=[field], validate=True)
        self.assertEqual(url, test_input)
        req = RequestContainer(query_args=test_input, body_args=test_input)
        self.assertRaises(ValidationException, translate_fields, req,
                          fields=[field], validate=True)

        # QUERY_ARGS
        field = BaseField('field', required=True, arg_type=input_categories.QUERY_ARGS)
        req = RequestContainer(query_args=test_input)
        url, query, body = translate_fields(req, fields=[field], validate=True)
        self.assertEqual(query, test_input)
        req = RequestContainer(url_params=test_input, body_args=test_input)
        self.assertRaises(ValidationException, translate_fields, req,
                          fields=[field], validate=True)

        # BODY_ARGS
        field = BaseField('field', required=True, arg_type=input_categories.BODY_ARGS)
        req = RequestContainer(body_args=test_input)
        url, query, body = translate_fields(req, fields=[field], validate=True)
        self.assertEqual(body, test_input)
        req = RequestContainer(query_args=test_input, url_params=test_input)
        self.assertRaises(ValidationException, translate_fields, req,
                          fields=[field], validate=True)

        # Non-existent input type
        field = BaseField('field', required=True, arg_type='fake')
        req = RequestContainer(query_args=test_input, url_params=test_input, body_args=test_input)
        self.assertRaises(RestException, translate_fields, req, fields=[field], validate=True)
Beispiel #2
0
 def action(cls, request, *args, **kwargs):
     """
     Gets and translates/validates the fields.
     """
     # TODO This is so terrible.  I really need to fix this.
     from ripozo.resources.fields.base import translate_fields
     translate_fields(request, self.fields(cls.manager),
                      skip_required=self.skip_required, validate=self.validate)
     return func(cls, request, *args, **kwargs)
Beispiel #3
0
    def test_input_category_types(self):
        cat = input_categories.URL_PARAMS
        test_input = dict(field='something')

        # URL_PARAMS
        field = BaseField('field',
                          required=True,
                          arg_type=input_categories.URL_PARAMS)
        req = RequestContainer(url_params=test_input)
        url, query, body = translate_fields(req, fields=[field], validate=True)
        self.assertEqual(url, test_input)
        req = RequestContainer(query_args=test_input, body_args=test_input)
        self.assertRaises(ValidationException,
                          translate_fields,
                          req,
                          fields=[field],
                          validate=True)

        # QUERY_ARGS
        field = BaseField('field',
                          required=True,
                          arg_type=input_categories.QUERY_ARGS)
        req = RequestContainer(query_args=test_input)
        url, query, body = translate_fields(req, fields=[field], validate=True)
        self.assertEqual(query, test_input)
        req = RequestContainer(url_params=test_input, body_args=test_input)
        self.assertRaises(ValidationException,
                          translate_fields,
                          req,
                          fields=[field],
                          validate=True)

        # BODY_ARGS
        field = BaseField('field',
                          required=True,
                          arg_type=input_categories.BODY_ARGS)
        req = RequestContainer(body_args=test_input)
        url, query, body = translate_fields(req, fields=[field], validate=True)
        self.assertEqual(body, test_input)
        req = RequestContainer(query_args=test_input, url_params=test_input)
        self.assertRaises(ValidationException,
                          translate_fields,
                          req,
                          fields=[field],
                          validate=True)

        # Non-existent input type
        field = BaseField('field', required=True, arg_type='fake')
        req = RequestContainer(query_args=test_input,
                               url_params=test_input,
                               body_args=test_input)
        self.assertRaises(RestException,
                          translate_fields,
                          req,
                          fields=[field],
                          validate=True)
 def action(cls, request, *args, **kwargs):
     """
     Gets and translates/validates the fields.
     """
     # TODO This is so terrible.  I really need to fix this.
     from ripozo.resources.fields.base import translate_fields
     translate_fields(request,
                      self.fields(cls.manager),
                      skip_required=self.skip_required,
                      validate=self.validate)
     return func(cls, request, *args, **kwargs)
Beispiel #5
0
 def test_required(self):
     field = BaseField('field', required=True)
     req = RequestContainer()
     self.assertRaises(ValidationException, translate_fields, req,
                       fields=[field], validate=True)
     test_body = dict(nothere='this')
     req = RequestContainer(body_args=test_body)
     url, query, body = translate_fields(req, fields=[field], validate=True, skip_required=True)
     self.assertEqual(body, test_body)
Beispiel #6
0
 def test_required(self):
     field = BaseField('field', required=True)
     req = RequestContainer()
     self.assertRaises(ValidationException,
                       translate_fields,
                       req,
                       fields=[field],
                       validate=True)
     test_body = dict(nothere='this')
     req = RequestContainer(body_args=test_body)
     url, query, body = translate_fields(req,
                                         fields=[field],
                                         validate=True,
                                         skip_required=True)
     self.assertEqual(body, test_body)