Пример #1
0
def test_record_type_missing_key_in_value(value):
    regex = r'The fields from value \[.*\] differs from the fields of the record type \[.*\]'
    with pytest.raises(ValueError, match=regex):
        RecordType({
            'name': RecordTypeField('name', StringType()),
            'age': RecordTypeField('age', IntType())
        }).validate(value)
Пример #2
0
def test_record_type_optional_key_not_in_value(value):
    assert RecordType({
        'name':
        RecordTypeField('name', StringType()),
        'age':
        RecordTypeField('age', UnionType([NullType(), IntType()]))
    }).validate(value) is True
Пример #3
0
def test_build_record_type_field():
    field = RecordTypeField.build({
        'type': ['int', 'string'],
        'name': 'myField'
    })
    assert isinstance(field, RecordTypeField)
    assert isinstance(field.type, UnionType)
Пример #4
0
def test_record_type_wrong_value_type(value):
    with pytest.raises(
            ValueError,
            match=
            r'The value \[.*\] for field \[name\] should be \[StringType\]\.'):
        RecordType({
            'name': RecordTypeField('name', StringType())
        }).validate(value)
Пример #5
0
def test_invalid_record_type(value):
    with pytest.raises(
            ValueError,
            match=
            r'The value \[(.|\s)*\] should have type dict but it has \[.*\].'):
        RecordType({
            'name': RecordTypeField('name', StringType())
        }).validate(value)
Пример #6
0
def test_record_type_additional_key_in_value(value):
    regex = (
        r'The fields from value \[.*\] differs from the fields of the record type \[.*\]. '
        r'The following fields are not in the schema, but are present: \[.*\].'
    )
    with pytest.raises(ValueError, match=regex):
        RecordType({
            'name': RecordTypeField('name', StringType())
        }).validate(value)
Пример #7
0
def test_record_type_invalid_value_type(value):
    with pytest.raises(ValueError,
                       match=r'Error validating value for field \[.*\]'):
        RecordType({
            'name': RecordTypeField('name', IntType())
        }).validate(value)
Пример #8
0
def test_record_type(value):
    assert RecordType({
        'name': RecordTypeField('name', StringType())
    }).validate(value) is True
Пример #9
0
def test_record_type_repr(value):
    msg = (
        'RecordType <{\'name\': RecordTypeField <name: name, type: StringType, '
        'doc: None, default: None, order: None, aliases: None>}>')
    assert str(RecordType({'name': RecordTypeField('name',
                                                   StringType())})) == msg