コード例 #1
0
def test_transmute_mapping_subscripted(annotation, value):
    annotation = resolve_supertype(annotation)
    key_arg, value_arg = annotation.__args__
    transmuted = transmute(annotation, value)
    assert isinstance(transmuted, annotation.__origin__)
    assert all(isinstance(x, get_origin(key_arg)) for x in transmuted.keys())
    assert all(isinstance(x, get_origin(value_arg)) for x in transmuted.values())
コード例 #2
0
def test_transmute_pandas(annotation, value, expected):
    if annotation is objects.DFClass:
        transmuted = objects.DFClass(value).df
    else:
        transmuted = transmute(annotation, value)
        assert isinstance(transmuted, annotation)
    assert transmuted == expected if expected is None else expected.equals(transmuted)
コード例 #3
0
def test_transmute_nested_sequence():
    transmuted = transmute(objects.NestedSeq, {"datum": [{"foo": "bar"}]})
    assert isinstance(transmuted, objects.NestedSeq)
    assert all(isinstance(x, objects.Data) for x in transmuted.datum)
コード例 #4
0
def test_transmute_optional(annotation, value, expected):
    transmuted = transmute(annotation, value)
    assert transmuted == expected
コード例 #5
0
def test_transmute_tuple_subscripted(annotation, value, expected):
    transmuted = transmute(annotation, value)
    assert transmuted == expected
コード例 #6
0
def test_transmute_collections_subscripted(annotation, value):
    arg = annotation.__args__[0]
    transmuted = transmute(annotation, value)
    assert isinstance(transmuted, annotation.__origin__) and all(
        isinstance(x, arg) for x in transmuted
    )
コード例 #7
0
def test_transmute_nested_constrained(anno, val, expected):
    c = transmute(anno, val)
    assert c == expected
コード例 #8
0
def test_strict_anno_fails(anno, val):
    with pytest.raises(ConstraintValueError):
        transmute(anno, val)
コード例 #9
0
def test_transmute_collection_metas(annotation, value, expected):
    transmuted = transmute(annotation, value)
    assert transmuted == expected
コード例 #10
0
def test_transmute_newtype(annotation, value):
    transmuted = transmute(annotation, value)
    assert isinstance(transmuted, annotation.__supertype__)
コード例 #11
0
def test_invalid_literal():
    with pytest.raises(TypeError):
        transmute(Literal[datetime.date.today()], [1])
コード例 #12
0
def test_transmute_literal_invalid(annotation, value):
    with pytest.raises(ConstraintValueError):
        transmute(annotation, value)
コード例 #13
0
def test_transmute_simple(annotation, value, expected):
    transmuted = transmute(annotation, value)
    t = dict if istypeddict(annotation) else annotation
    assert isinstance(transmuted, t)
    assert transmuted == expected
コード例 #14
0
def test_union_transmute(annotation, value, expected, t):
    transmuted = transmute(annotation, value)
    assert transmuted == expected
    assert isinstance(transmuted, t)
コード例 #15
0
def test_tagged_union_transmute(annotation, value, expected):
    transmuted = transmute(annotation, value)
    assert isinstance(transmuted, annotation)
    assert transmuted == expected
コード例 #16
0
def test_no_transmuter(val):
    class NoTransmuter:
        def __init__(self, x):
            self.x = x

    assert transmute(NoTransmuter, val).x == val
コード例 #17
0
def test_cast_constrained_invalid(type, value):
    with pytest.raises(ConstraintValueError):
        transmute(type, value)
コード例 #18
0
def test_default_none():
    transmuted = transmute(objects.DefaultNone, {})
    assert transmuted.none is None
コード例 #19
0
def test_strict_anno_passes(anno, val):
    assert transmute(anno, val) == val
コード例 #20
0
def test_default_ellipsis():
    transmuted = transmute(objects.DefaultEllipsis, {})
    assert transmuted.ellipsis is ...
コード例 #21
0
def test_recursive_transmute(annotation, value, expected):
    transmuted = transmute(annotation, value)
    assert isinstance(transmuted, annotation)
    assert transmuted == expected
コード例 #22
0
def test_transmute_supscripted(annotation, value, expected):
    assert transmute(annotation, value) == expected