Ejemplo n.º 1
0
    def test_entity_type(self):
        s = Schema()

        e = EntityType('MyEntity', s, attributes={
            'foo': {'type':'string', 'default':'FOO'},
            'req': {'type':'integer', 'required':True},
            'e': {'type':['x', 'y']}})

        e.init()
        self.assertRaises(ValidationError, e.validate, {}) # Missing required 'req'
        self.assertEqual(e.validate({'req':42}), {'foo': 'FOO', 'req': 42})
Ejemplo n.º 2
0
    def test_entity_type(self):
        s = Schema()

        e = EntityType('MyEntity', s, attributes={
            'foo': {'type': 'string', 'default': 'FOO'},
            'req': {'type': 'integer', 'required': True},
            'e': {'type': ['x', 'y']}})

        e.init()
        self.assertRaises(ValidationError, e.validate, {})  # Missing required 'req'
        self.assertEqual(e.validate({'req': 42}), {'foo': 'FOO', 'req': 42})
Ejemplo n.º 3
0
    def test_entity_type(self):
        s = Schema(
            annotations={
                'i1': {
                    'attributes': {
                        'foo1': {
                            'type': 'string',
                            'default': 'FOO1'
                        }
                    }
                },
                'i2': {
                    'attributes': {
                        'foo2': {
                            'type': 'string',
                            'default': 'FOO2'
                        }
                    }
                }
            })

        e = EntityType('MyEntity',
                       s,
                       attributes={
                           'foo': {
                               'type': 'string',
                               'default': 'FOO'
                           },
                           'req': {
                               'type': 'integer',
                               'required': True
                           },
                           'e': {
                               'type': ['x', 'y']
                           }
                       })
        e.init()
        self.assertRaises(ValidationError, e.validate,
                          {})  # Missing required 'req'
        self.assertEqual(e.validate({'req': 42}), {'foo': 'FOO', 'req': 42})
        # Try with an annotation
        e = EntityType('e2',
                       s,
                       attributes={'x': {
                           'type': 'integer'
                       }},
                       annotations=['i1', 'i2'])
        e.init()
        self.assertEqual(e.validate({'x': 1}), {
            'x': 1,
            'foo1': 'FOO1',
            'foo2': 'FOO2'
        })
Ejemplo n.º 4
0
    def test_entity_refs(self):
        e = EntityType(
            "MyEntity",
            Schema(),
            attributes={
                "type": {"type": "string", "required": True, "value": "$$entityType"},
                "name": {"type": "string", "default": "$identity"},
                "identity": {"type": "string", "default": "$name", "required": True},
            },
        )

        self.assertEqual({"type": "MyEntity", "identity": "x", "name": "x"}, e.validate({"identity": "x"}))
        self.assertEqual({"type": "MyEntity", "identity": "x", "name": "x"}, e.validate({"name": "x"}))
        self.assertEqual({"type": "MyEntity", "identity": "x", "name": "y"}, e.validate({"identity": "x", "name": "y"}))
        self.assertRaises(ValidationError, e.validate, {})  # Circular reference.
Ejemplo n.º 5
0
    def test_entity_type(self):
        s = Schema()

        e = EntityType(
            "MyEntity",
            s,
            attributes={
                "foo": {"type": "string", "default": "FOO"},
                "req": {"type": "integer", "required": True},
                "e": {"type": ["x", "y"]},
            },
        )

        e.init()
        self.assertRaises(ValidationError, e.validate, {})  # Missing required 'req'
        self.assertEqual(e.validate({"req": 42}), {"foo": "FOO", "req": 42})
Ejemplo n.º 6
0
    def test_entity_refs(self):
        e = EntityType('MyEntity',
                       Schema(),
                       attributes={
                           'type': {
                               'type': 'string',
                               'required': True,
                               'value': '$$entityType'
                           },
                           'name': {
                               'type': 'string',
                               'default': '$identity'
                           },
                           'identity': {
                               'type': 'string',
                               'default': '$name',
                               "required": True
                           }
                       })

        self.assertEqual({
            'type': 'MyEntity',
            'identity': 'x',
            'name': 'x'
        }, e.validate({'identity': 'x'}))
        self.assertEqual({
            'type': 'MyEntity',
            'identity': 'x',
            'name': 'x'
        }, e.validate({'name': 'x'}))
        self.assertEqual({
            'type': 'MyEntity',
            'identity': 'x',
            'name': 'y'
        }, e.validate({
            'identity': 'x',
            'name': 'y'
        }))
        self.assertRaises(ValidationError, e.validate,
                          {})  # Circular reference.
Ejemplo n.º 7
0
    def test_entity_type(self):
        s = Schema(annotations={
            'i1':{'attributes': { 'foo1': {'type':'string', 'default':'FOO1'}}},
            'i2':{'attributes': { 'foo2': {'type':'string', 'default':'FOO2'}}}})

        e = EntityType('MyEntity', s, attributes={
            'foo': {'type':'string', 'default':'FOO'},
            'req': {'type':'integer', 'required':True},
            'e': {'type':['x', 'y']}})
        e.init()
        self.assertRaises(ValidationError, e.validate, {}) # Missing required 'req'
        self.assertEqual(e.validate({'req':42}), {'foo': 'FOO', 'req': 42})
        # Try with an annotation
        e = EntityType('e2', s, attributes={'x':{'type':'integer'}}, annotations=['i1', 'i2'])
        e.init()
        self.assertEqual(e.validate({'x':1}), {'x':1, 'foo1': 'FOO1', 'foo2': 'FOO2'})
Ejemplo n.º 8
0
    def test_entity_type(self):
        s = Schema(
            annotations={
                "i1": {"attributes": {"foo1": {"type": "string", "default": "FOO1"}}},
                "i2": {"attributes": {"foo2": {"type": "string", "default": "FOO2"}}},
            }
        )

        e = EntityType(
            "MyEntity",
            s,
            attributes={
                "foo": {"type": "string", "default": "FOO"},
                "req": {"type": "integer", "required": True},
                "e": {"type": ["x", "y"]},
            },
        )
        e.init()
        self.assertRaises(ValidationError, e.validate, {})  # Missing required 'req'
        self.assertEqual(e.validate({"req": 42}), {"foo": "FOO", "req": 42})
        # Try with an annotation
        e = EntityType("e2", s, attributes={"x": {"type": "integer"}}, annotations=["i1", "i2"])
        e.init()
        self.assertEqual(e.validate({"x": 1}), {"x": 1, "foo1": "FOO1", "foo2": "FOO2"})
Ejemplo n.º 9
0
    def test_entity_annotation_refs(self):
        s = Schema(
            annotations={
                "i1": {
                    "attributes": {
                        "name": {"type": "string", "default": "$identity"},
                        "identity": {"type": "string", "default": "$name", "required": True},
                    }
                }
            }
        )

        e = EntityType("MyEntity", s, attributes={}, annotations=["i1"])
        e.init()
        self.assertEqual({"identity": "x", "name": "x"}, e.validate({"identity": "x"}))
        self.assertEqual({"identity": "x", "name": "x"}, e.validate({"name": "x"}))
        self.assertEqual({"identity": "x", "name": "y"}, e.validate({"identity": "x", "name": "y"}))
        self.assertRaises(ValidationError, e.validate, {})
Ejemplo n.º 10
0
    def test_entity_annotation_refs(self):
        s = Schema(
            annotations={
                'i1': {
                    'attributes': {
                        'name': {
                            'type': 'string',
                            'default': '$identity'
                        },
                        'identity': {
                            'type': 'string',
                            'default': '$name',
                            "required": True
                        }
                    }
                }
            })

        e = EntityType('MyEntity', s, attributes={}, annotations=['i1'])
        e.init()
        self.assertEqual({
            'identity': 'x',
            'name': 'x'
        }, e.validate({'identity': 'x'}))
        self.assertEqual({
            'identity': 'x',
            'name': 'x'
        }, e.validate({'name': 'x'}))
        self.assertEqual({
            'identity': 'x',
            'name': 'y'
        }, e.validate({
            'identity': 'x',
            'name': 'y'
        }))
        self.assertRaises(ValidationError, e.validate, {})