示例#1
0
 class MyRecord(Record):
     elems = set_of(int)
示例#2
0
@foreach(
    (class_name, cls, value, nullable_or_not)
    for class_name, cls, non_null_val in (
        ('bytes', bytes_type, b'\xE2\x9C\x93\'\\\"\xE2\x9C\x93'),
        ('text', text_type, 'Herv\u00E9\'\\\"Herv\u00E9'),
        ('ascii-only text', text_type, 'ASCII'),
    ) + tuple(
        (t.__name__, t, t(42))
        for t in integer_types
    ) + (
        ('float', float, 0.3),
        ('bool', bool, True),
        ('sequence (nonempty)', seq_of(int), (1, 2, 3)),
        ('sequence (empty)', seq_of(int), []),
        ('set (nonempty)', set_of(int), (1, 2, 3)),
        ('set (empty)', set_of(int), []),
        ('dict (nonempty)', dict_of(text_type, int), {'one':1, 'two':2}),
        ('dict (empty)', dict_of(text_type, int), []),
        ('datetime', datetime, datetime(2016, 4, 15, 10, 1, 59)),
        ('timedelta', timedelta, timedelta(days=1, hours=2, minutes=3, seconds=4)),
        (lambda R2: ('other record', R2, R2(2)))(_other_record()),
    )
    for nullable_or_not, vals in (
        (lambda f: f, (non_null_val,)),
        (nullable, (non_null_val, None)),
    )
    for value in vals
)
def _(class_name, cls, value, nullable_or_not):
示例#3
0
 class MyRecord(Record):
     children = set_of(RecursiveType)
示例#4
0
 class MyRecord(Record):
     v = set_of(int, nullable=True, default={1, 2, 3})
示例#5
0
 class MyRecord(Record):
     v = set_of(MyClass)
示例#6
0
 class MyRecord1(Record):
     v = set_of(int, nullable=True)
示例#7
0
 class MyRecord2(Record):
     v = set_of(int, nullable=False)
示例#8
0
 class MyRecord(Record):
     v = set_of(
         int,
         coerce=lambda v: map(int, v),
     )
示例#9
0
 class MyRecord(Record):
     v = set_of(
         int,
         check=lambda s: len(s) == 3,
     )
示例#10
0
 class MyRecord(Record):
     v = nullable(set_of(int))
示例#11
0
 class MyRecord(Record):
     v = set_of(Field(int))
示例#12
0
 class MyRecord(Record):
     elems = set_of(MyClass1)
示例#13
0
 class Record2(Record):
     elems = set_of(MyClass2)
示例#14
0
 class Record1(Record):
     elems = set_of(MyClass1)
示例#15
0
def _():
    class MyRecord(Record):
        v = one_of('a', 'b', 'c', coerce=text_type.lower)

    assert_eq(MyRecord('C').v, 'c')


#----------------------------------------------------------------------------------------------------------------------------------
# nonempty


@foreach((
    (bytes_type, 'byte strings', b''),
    (text_type, 'text strings', ''),
    (seq_of(int), 'seqeuence fields', ()),
    (set_of(int), 'set fields', ()),
    (dict_of(int, int), 'dict fields', {}),
))
def _(ftype, ftype_name, empty_val):
    @test('in general {} fields can be empty'.format(ftype_name))
    def _():
        class MyRecord(Record):
            v = ftype

        assert_eq(len(MyRecord(empty_val).v), 0)

    @test("nonempty {} can't be empty".format(ftype_name))
    def _():
        class MyRecord(Record):
            v = nonempty(ftype)
示例#16
0
 class MyRecord(Record):
     myset = set_of(int)