示例#1
0
def test_get_signature():
    # noinspection PyUnusedLocal
    def f(a, b):
        assert False  # pragma: no cover

    # noinspection PyUnusedLocal
    def f2(b, a):
        assert False  # pragma: no cover

    assert get_signature(lambda a, b: None) == get_signature(
        f2) == get_signature(f) == 'a,b||'
    # noinspection PyUnresolvedReferences
    assert f.__tri_declarative_signature == 'a,b||'
示例#2
0
def test_early_return_from_get_signature():
    # noinspection PyUnusedLocal
    def foo(a, b, c):
        assert False  # pragma: no cover

    object.__setattr__(foo, '__tri_declarative_signature', 'foobar')
    assert get_signature(foo) == 'foobar'
示例#3
0
def test_get_signature_on_class():
    class Foo:
        # noinspection PyUnusedLocal
        def __init__(self, a, b):
            assert False  # pragma: no cover

    assert 'a,b,self||' == get_signature(Foo)
    # noinspection PyUnresolvedReferences
    assert 'a,b,self||' == Foo.__tri_declarative_signature
示例#4
0
def test_get_signature_description():
    assert get_signature(lambda a, b: None) == 'a,b||'
    assert get_signature(lambda a, b, c, d=None, e=None: None) == 'a,b,c|d,e|'
    assert get_signature(lambda d, c, b=None, a=None: None) == 'c,d|a,b|'
    assert get_signature(lambda a, b, c=None, d=None, **_: None) == 'a,b|c,d|*'
    assert get_signature(lambda d, c, b=None, a=None, **_: None) == 'c,d|a,b|*'
    assert get_signature(lambda **_: None) == '||*'
示例#5
0
def test_get_signature_varargs():
    assert get_signature(lambda a, b, **c: None) == "a,b||*"
示例#6
0
def test_get_signature_fails_on_native():
    # isinstance will return False for a native function. A string will also return False.
    f = 'this is not a function'
    assert get_signature(f) is None
示例#7
0
def test_get_signature_on_namespace_does_not_modify_its_contents():
    foo = Namespace()
    get_signature(foo)
    assert str(foo) == 'Namespace()'