예제 #1
0
파일: test_roles.py 프로젝트: sseg/jsl
def test_keyword_of_fields(keyword, field_cls):
    s_f = StringField()
    n_f = NumberField()
    i_f = IntField()
    field = field_cls([n_f, Var({'role_1': s_f}), Var({'role_2': i_f})])
    assert s(field.get_schema()) == {keyword: [n_f.get_schema()]}
    assert s(field.get_schema(role='role_1')) == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    assert s(field.get_schema(role='role_2')) == {
        keyword: [n_f.get_schema(), i_f.get_schema()]
    }

    field = field_cls(
        Var(
            {
                'role_1': [n_f,
                           Var({'role_1': s_f}),
                           Var({'role_2': i_f})],
                'role_2': [Var({'role_2': i_f})],
            },
            propagate='role_1'))
    assert s(field.get_schema(role='role_1')) == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    with pytest.raises(SchemaGenerationException):
        field.get_schema(role='role_2')
예제 #2
0
def test_keyword_of_fields(keyword, field_cls):
    s_f = StringField()
    n_f = NumberField()
    i_f = IntField()
    field = field_cls([n_f, Var(role_1=s_f), Var(role_2=i_f)])
    assert field.get_schema() == {
        keyword: [n_f.get_schema()]
    }
    assert field.get_schema(role='role_1') == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    assert field.get_schema(role='role_2') == {
        keyword: [n_f.get_schema(), i_f.get_schema()]
    }

    field = field_cls(Var(
        role_1=[n_f, Var(role_1=s_f), Var(role_2=i_f)],
        role_2=[Var(role_2=i_f)],
        roles_to_pass_down=['role_1']
    ))
    assert field.get_schema() == {keyword: []}
    assert field.get_schema(role='role_1') == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    assert field.get_schema(role='role_2') == {keyword: []}
예제 #3
0
파일: test_roles.py 프로젝트: keith923/jsl
def test_keyword_of_fields(keyword, field_cls):
    s_f = StringField()
    n_f = NumberField()
    i_f = IntField()
    field = field_cls([n_f, Var({'role_1': s_f}), Var({'role_2': i_f})])
    assert field.get_schema() == {keyword: [n_f.get_schema()]}
    assert field.get_schema(role='role_1') == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    assert field.get_schema(role='role_2') == {
        keyword: [n_f.get_schema(), i_f.get_schema()]
    }

    field = field_cls(
        Var(
            {
                'role_1': [n_f,
                           Var({'role_1': s_f}),
                           Var({'role_2': i_f})],
                'role_2': [Var({'role_2': i_f})],
            },
            propagate='role_1'))
    assert field.get_schema() == {keyword: []}
    assert field.get_schema(role='role_1') == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    assert field.get_schema(role='role_2') == {keyword: []}
예제 #4
0
파일: test_roles.py 프로젝트: sseg/jsl
 class Message(Document):
     with Scope(DB_ROLE) as db:
         db.uuid = StringField(required=True)
     created_at = IntField(
         required=when_not(PARTIAL_RESPONSE_ROLE, REQUEST_ROLE))
     text = StringField(required=when_not(PARTIAL_RESPONSE_ROLE))
     field_that_is_never_present = Var(
         {'NEVER': StringField(required=True)})
예제 #5
0
파일: test_roles.py 프로젝트: keith923/jsl
    class Task(Document):
        class Options(object):
            title = 'Task'
            description = 'A task.'
            definition_id = 'task'

        id = IntField(required=Var({'response': True}))
        name = StringField(required=True, min_length=5)
        type = StringField(required=True, enum=['TYPE_1', 'TYPE_2'])
        created_at = DateTimeField(required=True)
        author = Var({'response': DocumentField(User)})
예제 #6
0
class Response(Document):

    data = DictField(
        {
            'name': StringField(min_length=2, required=True),
            'url': UriField(),
            'main': BooleanField(default=False),
        },
        required=True)
    data_id = IntField()
    system = StringField(default='dev')
예제 #7
0
파일: test_roles.py 프로젝트: keith923/jsl
def test_keyword_of_fields(keyword, field_cls):
    s_f = StringField()
    n_f = NumberField()
    i_f = IntField()
    field = field_cls([n_f, Var({'role_1': s_f}), Var({'role_2': i_f})])
    assert field.get_schema() == {
        keyword: [n_f.get_schema()]
    }
    assert field.get_schema(role='role_1') == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    assert field.get_schema(role='role_2') == {
        keyword: [n_f.get_schema(), i_f.get_schema()]
    }

    field = field_cls(Var({
        'role_1': [n_f, Var({'role_1': s_f}), Var({'role_2': i_f})],
        'role_2': [Var({'role_2': i_f})],
    }, propagate='role_1'))
    assert field.get_schema() == {keyword: []}
    assert field.get_schema(role='role_1') == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    assert field.get_schema(role='role_2') == {keyword: []}
예제 #8
0
def test_keyword_of_fields(keyword, field_cls):
    s_f = StringField()
    n_f = NumberField()
    i_f = IntField()
    field = field_cls([n_f, Var({'role_1': s_f}), Var({'role_2': i_f})])
    assert s(field.get_schema()) == {
        keyword: [n_f.get_schema()]
    }
    assert s(field.get_schema(role='role_1')) == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    assert s(field.get_schema(role='role_2')) == {
        keyword: [n_f.get_schema(), i_f.get_schema()]
    }

    field = field_cls(Var({
        'role_1': [n_f, Var({'role_1': s_f}), Var({'role_2': i_f})],
        'role_2': [Var({'role_2': i_f})],
    }, propagate='role_1'))
    assert s(field.get_schema(role='role_1')) == {
        keyword: [n_f.get_schema(), s_f.get_schema()]
    }
    with pytest.raises(SchemaGenerationException):
        field.get_schema(role='role_2')
예제 #9
0
    class Base(Document):
        class Options(object):
            inheritance_mode = ALL_OF
            definition_id = 'base'

        created_at = IntField()
예제 #10
0
파일: test_roles.py 프로젝트: keith923/jsl
 class User(Document):
     id = Var({'response': IntField(required=True)})
     login = StringField(required=True)
예제 #11
0
    class Child(Document):
        class Options(object):
            definition_id = 'child'

        child_attr = IntField()
예제 #12
0
    class Parent(Child):
        class Options(object):
            inheritance_mode = ALL_OF

        parent_attr = IntField()
예제 #13
0
 class C(B):
     c = IntField()
예제 #14
0
 class B(A):
     b = IntField()
예제 #15
0
파일: test_roles.py 프로젝트: keith923/jsl
 class Message(Document):
     with Scope(DB_ROLE) as db:
         db.uuid = StringField(required=True)
     created_at = IntField(
         required=when_not(PARTIAL_RESPONSE_ROLE, REQUEST_ROLE))
     text = StringField(required=when_not(PARTIAL_RESPONSE_ROLE))
예제 #16
0
    class IntChild(Document):
        class Options(object):
            definition_id = 'int_child'

        foo = IntField()
        bar = IntField()
예제 #17
0
 class Child(Document):
     child_attr = IntField()
예제 #18
0
class Request(Document):

    project_id = IntField(minimum=0, required=True)
    archived = BooleanField()
    include_stories = BooleanField()
예제 #19
0
 class A(Document):
     a = IntField()