Пример #1
0
    def test_fieldset_schema_io(self):
        fs = FieldSet({
            "id": fields.Number(io='r'),
            "name": fields.String(),
            "secret": fields.String(io='c'),
            "updateOnly": fields.String(io='u'),
        })

        self.assertEqual(
            {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "number",
                        "readOnly": True
                    },
                    "name": {
                        "type": "string"
                    },
                },
            },
            fs.response,
        )

        self.assertEqual(
            {
                "type": "object",
                "additionalProperties": False,
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "updateOnly": {
                        "type": "string"
                    },
                },
            },
            fs.update,
        )

        self.assertEqual(
            {
                "name": {
                    "type": "string"
                },
                "secret": {
                    "type": "string"
                }
            },
            fs.create['properties'],
        )

        self.assertEqual({"name", "secret"}, set(fs.create['required']))
Пример #2
0
 def test_fieldset_format(self):
     self.assertEqual({
         "number": 42,
         "constant": "constant"
     },
                      FieldSet({
                          "number": fields.Number(),
                          "constant": fields.String(io='r'),
                          "secret": fields.String(io='w'),
                      }).format({
                          "number": 42,
                          "constant": "constant",
                          "secret": "secret"
                      }))
Пример #3
0
    def test_number_convert(self):
        with self.assertRaises(ValidationError):
            fields.Number().convert("nope")

        with self.assertRaises(ValidationError):
            fields.Number(nullable=False).convert(None)

        with self.assertRaises(ValidationError):
            fields.Number(minimum=3).convert(2)

        with self.assertRaises(ValidationError):
            fields.Number(minimum=3, exclusive_minimum=True).convert(3)

        with self.assertRaises(ValidationError):
            fields.Number(maximum=3, exclusive_maximum=True).convert(3)

        self.assertEqual(3, fields.Number(maximum=3).convert(3))
        self.assertEqual(3, fields.Number(minimum=3).convert(3))
        self.assertEqual(None, fields.Number(nullable=True).convert(None))
        self.assertEqual(1.23, fields.Number().convert(1.23))
Пример #4
0
        class DrinkResource(ModelResource):
            recipe = ItemAttributeRoute(
                fields.Array(
                    fields.Object(
                        properties={
                            "ingredient": fields.ToOne("ingredient"),
                            "volume": fields.Number()
                        })))

            class Meta:
                name = "drink"
                model = name
                manager = MemoryManager
                id_field_class = fields.Integer
                include_type = True

            class Schema:
                name = fields.String()
Пример #5
0
 def create(self, value: fields.Number()) -> fields.Inline('self'):
     return {"name": "foo", "value": value}
Пример #6
0
 class Schema:
     name = fields.String()
     value = fields.Number()