示例#1
0
def test_type_check_example():
    assert t.type_check(5, 1) == None
    assert t.type_check(5, 1.3) == 'must be of type float'
    assert t.type_check('foo', 'bar') == None
    assert t.type_check(MyNumber(3), MyNumber(5)) == None
    assert t.type_check(
        3, MyNumber(5)) == 'must be of type type_spec.test_core.MyNumber'
示例#2
0
def test_type_check_callable():
    assert t.type_check(5, Positive) == None
    assert t.type_check(5.9, Positive) == None
    assert t.type_check(-5, Positive) == 'must be positive'

    assert t.type_check(5, CallableNumber()) == None
    assert t.type_check(5.5, CallableNumber()) == 'must be of type int'
示例#3
0
def test_type_check_dict():
    assert t.type_check({}, {}) == None
    assert t.type_check([], {}) == 'must be of type dict'
    assert t.type_check({'foo': 1}, {}) == None
    assert t.type_check({'foo': 1}, {'foo': int}) == None
    assert t.type_check({'foo': 1.3},
                        {'foo': int}) == "{'foo': 'must be of type int'}"
示例#4
0
def test_type_check_type():
    assert t.type_check(5, int) == None
    assert t.type_check('foobar', int) == 'must be of type int'

    assert t.type_check(True, bool) == None
    assert t.type_check(False, bool) == None
    assert t.type_check(5, bool) == 'must be of type bool'

    assert t.type_check(Data(5), Data) == None
    assert t.type_check('foobar',
                        Data) == 'must be of type type_spec.test_core.Data'
示例#5
0
def test_type_check_list():
    assert t.type_check([], []) == None
    assert t.type_check({}, []) == 'must be of type list'
    assert t.type_check([3], []) == None
    assert t.type_check([3], [int]) == None
    assert t.type_check([3, 4, 5], [int]) == None
    assert t.type_check(
        [3, 4, 5.2], [int]) == 'list index 2 is invalid - must be of type int'
示例#6
0
 def __call__(self, v):
     return t.type_check(v, int)
示例#7
0
def test_type_check_predicate():
    even = lambda n: n % 2 == 0
    assert t.type_check(6, even) == None
    assert t.type_check(
        5,
        even) == 'must be of type test_type_check_predicate.<locals>.<lambda>'
示例#8
0
def Number(v):
    return t.type_check(v, t.AnyOf(int, float))
示例#9
0
def test_type_check_none():
    assert t.type_check(None, None) == None
    assert t.type_check(5, None) == 'must be None'
示例#10
0
def test_type_check_custom_check():
    assert t.type_check(MyNumber(5), MyNumber) == None
    assert t.type_check(MyNumber(5.3), MyNumber) == 'must be of type int'
示例#11
0
 def type_check(my_number):
     return t.type_check(my_number.n, int)