Esempio n. 1
0
def test_dict_field():
    s_f = StringField()
    _ = lambda value: Var({'role_1': value})
    field = DictField(properties=Var(
        role_1={'name': Var(role_1=s_f)},
        role_2={'name': Var(role_2=s_f)},
        roles_to_pass_down=['role_1']
    ), pattern_properties=Var(
        role_1={'.*': Var(role_1=s_f)},
        role_2={'.*': Var(role_2=s_f)},
        roles_to_pass_down=['role_1']
    ), additional_properties=_(s_f), min_properties=_(1), max_properties=_(2))
    assert field.get_schema() == {
        'type': 'object'
    }
    assert field.get_schema(role='role_1') == {
        'type': 'object',
        'properties': {
            'name': s_f.get_schema(),
        },
        'patternProperties': {
            '.*': s_f.get_schema(),
        },
        'additionalProperties': s_f.get_schema(),
        'minProperties': 1,
        'maxProperties': 2,
    }
    assert field.get_schema(role='role_2') == {
        'type': 'object',
        'properties': {},
        'patternProperties': {},
    }
Esempio n. 2
0
def test_dict_field():
    s_f = StringField()
    _ = lambda value: Var({'role_1': value})
    field = DictField(properties=Var(
        {
            'role_1': {
                'name': Var({'role_1': s_f})
            },
            'role_2': {
                'name': Var({'role_2': s_f})
            },
        },
        propagate='role_1'),
                      pattern_properties=Var(
                          {
                              'role_1': {
                                  '.*': Var({'role_1': s_f})
                              },
                              'role_2': {
                                  '.*': Var({'role_2': s_f})
                              },
                          },
                          propagate='role_1'),
                      additional_properties=_(s_f),
                      min_properties=_(1),
                      max_properties=_(2))
    assert s(field.get_schema()) == s({'type': 'object'})
    assert s(field.get_schema(role='role_1')) == s({
        'type':
        'object',
        'properties': {
            'name': s_f.get_schema(),
        },
        'patternProperties': {
            '.*': s_f.get_schema(),
        },
        'additionalProperties':
        s_f.get_schema(),
        'minProperties':
        1,
        'maxProperties':
        2,
    })
    assert s(field.get_schema(role='role_2')) == s({
        'type': 'object',
        'properties': {},
        'patternProperties': {},
    })
Esempio n. 3
0
def test_dict_field():
    s_f = StringField()
    _ = lambda value: Var({'role_1': value})
    field = DictField(properties=Var(
        {
            'role_1': {'name': Var({'role_1': s_f})},
            'role_2': {'name': Var({'role_2': s_f})},
        },
        propagate='role_1'
    ), pattern_properties=Var(
        {
            'role_1': {'.*': Var({'role_1': s_f})},
            'role_2': {'.*': Var({'role_2': s_f})},
        },
        propagate='role_1'
    ), additional_properties=_(s_f), min_properties=_(1), max_properties=_(2))
    assert s(field.get_schema()) == s({
        'type': 'object'
    })
    assert s(field.get_schema(role='role_1')) == s({
        'type': 'object',
        'properties': {
            'name': s_f.get_schema(),
        },
        'patternProperties': {
            '.*': s_f.get_schema(),
        },
        'additionalProperties': s_f.get_schema(),
        'minProperties': 1,
        'maxProperties': 2,
    })
    assert s(field.get_schema(role='role_2')) == s({
        'type': 'object',
        'properties': {},
        'patternProperties': {},
    })