Пример #1
0
def test_array_field():
    field = ArrayField(Var({
        'role_1': a,
        'role_2': b,
        'role_none': None,
    }), additional_items=Var({
        'role_3': c,
        'role_4': d,
        'role_1': e,
        'role_none': None,
    }))
    assert set(field.iter_all_fields()) == set([a, b, c, d, e])
    assert set(field.iter_fields('role_1')) == set([a, e])
    assert set(field.iter_fields('role_3')) == set([c])
    assert set(field.iter_fields('role_none')) == set([])

    field = ArrayField(Var({
        'role_1': (a, b),
        'role_2': c
    }), additional_items=d)
    assert set(field.iter_all_fields()) == set([a, b, c, d])

    field = ArrayField((Var({'role_1': a, 'role_2': b, 'role_none': None}), c))
    assert set(field.iter_all_fields()) == set([a, b, c])
    assert set(field.iter_fields('role_1')) == set([a, c])
    assert set(field.iter_fields('role_none')) == set([c])

    field = ArrayField(a, additional_items=b)
    assert set(field.iter_all_fields()) == set([a, b])
    assert set(field.iter_fields('some_role')) == set([a, b])

    field = ArrayField()
    assert set(field.iter_all_fields()) == set([])
Пример #2
0
def test_base_of_field():
    field = BaseOfField((a, b))
    assert set(field.iter_all_fields()) == set([a, b])

    field = BaseOfField(Var({
        'role_1': (a, b),
        'role_2': c,
        'role_3': None,  # probably should raise?
    }))
    assert set(field.iter_all_fields()) == set([a, b, c])
Пример #3
0
def test_not_field():
    field = NotField(a)
    assert set(field.iter_all_fields()) == set([a])

    field = NotField(
        Var({
            'a': a,
            'b': b,
            'c': None,  # probably should raise?
        }))
    assert set(field.iter_all_fields()) == set([a, b])
Пример #4
0
def test_dict_field():
    field = DictField(properties=Var({
        'role_1': {
            'a': Var({
                'role_a': a,
                'role_none': None,
            }),
            'b': b,
            'role_none': None,
        },
        'role_2': {
            'c': c
        },
        'role_none': None,
    }),
                      pattern_properties=Var({
                          'role_3': {
                              'x*': Var({
                                  'role_b': d,
                                  'role_none': None,
                              }),
                          },
                          'role_4': {
                              'y*': e
                          },
                          'role_none': None,
                      }),
                      additional_properties=Var({
                          'role_5': f,
                          'role_6': g,
                          'role_none': None,
                      }))
    assert set(field.iter_all_fields()) == set([a, b, c, d, e, f, g])

    field = DictField(properties={'a': a},
                      pattern_properties={'b': b},
                      additional_properties=c)
    assert set(field.iter_all_fields()) == set([a, b, c])

    field = DictField()
    assert set(field.iter_all_fields()) == set([])
Пример #5
0
def test_not_field():
    field = NotField(a)
    assert set(field.iter_all_fields()) == set([a])
    assert set(field.iter_fields('some_role')) == set([a])

    field = NotField(Var({
        'role_1': a,
        'role_2': b,
        'role_3': None,  # probably should raise?
    }))
    assert set(field.iter_all_fields()) == set([a, b])
    assert set(field.iter_fields('role_1')) == set([a])
    assert set(field.iter_fields('role_3')) == set([])
Пример #6
0
def test_array_field():
    field = ArrayField(Var({
        'role_1': a,
        'role_2': b,
    }),
                       additional_items=Var({
                           'role_3': c,
                           'role_4': d,
                       }))
    assert set(field.iter_all_fields()) == set([a, b, c, d])

    field = ArrayField(Var({
        'role_1': (a, b),
        'role_2': c
    }),
                       additional_items=d)
    assert set(field.iter_all_fields()) == set([a, b, c, d])

    field = ArrayField(a, additional_items=b)
    assert set(field.iter_all_fields()) == set([a, b])

    field = ArrayField()
    assert set(field.iter_all_fields()) == set([])
Пример #7
0
 class B(Document):
     field = Var({'a': a, 'b': b})
     b = c