コード例 #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)
コード例 #2
0
ファイル: base.py プロジェクト: ezramorris/ripozo
    def test_validate_type(self):
        f = BaseField('field', required=False)
        original = object()

        # test doesn't raise when valid
        new = f._validate_type(None)
        self.assertIsNone(new)
        new = f._validate_type(original)
        self.assertEqual(new, original)

        f.field_type = int
        self.assertRaises(ValidationException, f._validate_type, 'something')
コード例 #3
0
    def test_validate_type(self):
        f = BaseField('field', required=False)
        original = object()

        # test doesn't raise when valid
        new = f._validate_type(None)
        self.assertIsNone(new)
        new = f._validate_type(original)
        self.assertEqual(new, original)

        f.field_type = int
        self.assertRaises(ValidationException, f._validate_type, 'something')
コード例 #4
0
    def __init__(self, name, indv_field=BaseField('list'), **kwargs):
        """

        :param unicode name: The name of the field.
        :param BaseField indv_field: The field to use when
            translating and validating individual items
            in the list.
        """
        self.indv_field = indv_field
        super(ListField, self).__init__(name, **kwargs)
コード例 #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)
コード例 #6
0
    def get_field_type(cls, name):
        """
        Takes a field name and gets an appropriate BaseField instance
        for that column.  It inspects the Model that is set on the manager
        to determine what the BaseField subclass should be.

        :param unicode name:
        :return: A BaseField subclass that is appropriate for
            translating a string input into the appropriate format.
        :rtype: ripozo.viewsets.fields.base.BaseField
        """
        python_type = cls._get_field_python_type(cls.model, name)
        if python_type in _COLUMN_FIELD_MAP:
            field_class = _COLUMN_FIELD_MAP[python_type]
            return field_class(name)
        return BaseField(name)
コード例 #7
0
ファイル: base.py プロジェクト: ezramorris/ripozo
 def test_translate_none_like(self):
     f = BaseField('field')
     output = f._translate(False)
     self.assertIsNotNone(output)
     self.assertFalse(output)
コード例 #8
0
ファイル: base.py プロジェクト: ezramorris/ripozo
 def test_validate_size(self):
     f = BaseField('f', minimum=1, maximum=1)
     self.assertRaises(ValidationException, f._validate_size, 0, 0)
     self.assertRaises(ValidationException, f._validate_size, 2, 2)
     resp = f._validate_size(1, 1)
     self.assertEqual(resp, 1)
コード例 #9
0
ファイル: base.py プロジェクト: ezramorris/ripozo
 def test_validate_required(self):
     f = BaseField('f', required=True)
     self.assertRaises(ValidationException, f._validate_required, None)
     resp = f._validate_required(None, skip_required=True)
     self.assertIsNone(resp)
コード例 #10
0
 def get_field_type(cls, name):
     super(InMemoryManager, cls).get_field_type(name)
     return BaseField(name)
コード例 #11
0
 def test_validate_size(self):
     f = BaseField('f', minimum=1, maximum=1)
     self.assertRaises(ValidationException, f._validate_size, 0, 0)
     self.assertRaises(ValidationException, f._validate_size, 2, 2)
     resp = f._validate_size(1, 1)
     self.assertEqual(resp, 1)
コード例 #12
0
 def test_translate_list(self):
     f = BaseField('field')
     output = f._translate([1, 2])
     self.assertEqual(output, 1)
コード例 #13
0
 def test_empty_list(self):
     f = BaseField('field')
     output = f._translate([])
     self.assertIsNone(output)
コード例 #14
0
 def test_translate_none_like(self):
     f = BaseField('field')
     output = f._translate(False)
     self.assertIsNotNone(output)
     self.assertFalse(output)
コード例 #15
0
ファイル: base.py プロジェクト: ezramorris/ripozo
 def test_empty_list(self):
     f = BaseField('field')
     output = f._translate([])
     self.assertIsNone(output)
コード例 #16
0
ファイル: base.py プロジェクト: ezramorris/ripozo
 def test_translate_list(self):
     f = BaseField('field')
     output = f._translate([1, 2])
     self.assertEqual(output, 1)
コード例 #17
0
 def test_validate_required(self):
     f = BaseField('f', required=True)
     self.assertRaises(ValidationException, f._validate_required, None)
     resp = f._validate_required(None, skip_required=True)
     self.assertIsNone(resp)