Example #1
0
class BlogPost(Model):
    id = Uuid(default_value=uuid4)
    title = String(validators=[
        min_length(3),
        max_length(100),
        regex(r'^([A-Za-z0-9- !.]*)$')
    ])
    body = String(default_value=u'Lorem ipsum', error_key='text')
    meta_data = Dict(mapping={'corrector': String(), 'reviewer': String()})
    published = Boolean()
    likes = Integer(required=False)
    category = String(required=False)
    tags = List(property=String(validators=[min_length(3)]),
                error_key='category')
    author = Object(model_class=Author)
    created_on = DateTime(default_value=datetime.now)
    updated_on = DateTime(default_value=datetime.now)
    revisions = List(required=False, property=Object(model_class=Revision))

    @model_validator(error_key='category')
    def category_or_tags(self):
        assert self.tags is not None or self.category is not None, ERROR_REQUIRED

    def __init__(self, **kwargs):
        super(BlogPost, self).__init__(**kwargs)

        self.foo = "bar"
Example #2
0
def test_object_valid_1():
    """Should be ok"""
    class Foo(Model):
        bar = String()

    test_object = Object(model_class=Foo)
    test_object.validate(Foo(bar="baz"))

    assert True
Example #3
0
def test_object_valid_1():
    """Should be ok"""

    class Foo(Model):
        bar = String()

    test_object = Object(model_class=Foo)
    test_object.validate(Foo(bar="baz"))

    assert True
Example #4
0
def test_object_invalid_1():
    """Wrong type"""
    class Foo(Model):
        bar = String()

    test_object = Object(model_class=Foo)

    with assert_raises(InvalidPropertyError) as cm:
        test_object.validate("foo")

    assert cm.exception.error == 'invalid'
Example #5
0
def test_object_invalid_1():
    """Wrong type"""

    class Foo(Model):
        bar = String()

    test_object = Object(model_class=Foo)

    with assert_raises(InvalidPropertyError) as cm:
        test_object.validate("foo")

    assert cm.exception.error == 'invalid'
Example #6
0
def test_object_default_mutable():
    """Mutating the property default value after providing it should not result in an altered default"""
    class Foo(Model):
        bar = String()

    default_object = Foo(bar="baz")
    test_object = Object(model_class=Foo, default_value=default_object)

    default_object.bar = "foo"

    assert test_object.default.bar == "baz"