def test_get_signature(): def f(a, b): pass def f2(b, a): pass assert 'a,b||' == get_signature(f) == get_signature(f2) == get_signature(lambda a, b: None)
def test_get_signature(): def f(a, b): pass def f2(b, a): pass assert 'a,b||' == get_signature(f) == get_signature(f2) == get_signature( lambda a, b: None) assert 'a,b||' == f.__tri_declarative_signature
def test_get_signature(): def f(a, b): pass def f2(b, a): pass f3 = lambda a, b: None assert get_signature(f) == get_signature(f2) == get_signature(f3) == 'a,b' assert get_signature(dir) is None
def test_get_signature_for_classes(): class Foo(object): def __init__(self, a, b, c): pass assert get_signature(Foo) == 'a,b,c,self||' assert getattr(Foo, '__tri_declarative_signature') == 'a,b,c,self||'
def test_get_signature_description(): assert 'a,b||' == get_signature(lambda a, b: None) assert 'a,b|c,d|' == get_signature(lambda a, b, c=None, d=None: None) assert 'c,d|a,b|' == get_signature(lambda d, c, b=None, a=None: None) assert 'a,b|c,d|*' == get_signature(lambda a, b, c=None, d=None, **_: None) assert 'c,d|a,b|*' == get_signature(lambda d, c, b=None, a=None, **_: None) assert '||*' == get_signature(lambda **_: None)
def test_get_signature_description(): assert 'a,b||' == get_signature(lambda a, b: None) assert 'a,b,c|d,e|' == get_signature(lambda a, b, c, d=None, e=None: None) assert 'c,d|a,b|' == get_signature(lambda d, c, b=None, a=None: None) assert 'a,b|c,d|*' == get_signature(lambda a, b, c=None, d=None, **_: None) assert 'c,d|a,b|*' == get_signature(lambda d, c, b=None, a=None, **_: None) assert '||*' == get_signature(lambda **_: None)
def test_get_signature_varargs(): assert "a,b,*" == get_signature(lambda a, b, **c: None)
def test_get_signature_class(): class Foo(object): pass assert get_signature(Foo) is None
def test_get_signature_description(): assert 'a,b' == get_signature(lambda a, b: None) assert 'a,b,[c,d]' == get_signature(lambda a, b, c=None, d=None: None) assert 'a,b,[c,d],*' == get_signature(lambda a, b, c=None, d=None, **_: None)
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 None is get_signature(f)
def test_get_signature_varargs(): assert "a,b||*" == get_signature(lambda a, b, **c: None)
def test_early_return_from_get_signature(): def foo(a, b, c): pass object.__setattr__(foo, '__tri_declarative_signature', 'foobar') assert get_signature(foo) == 'foobar'
def test_get_signature_class(): class Foo(object): pass assert None is get_signature(Foo)
def test_get_signature_on_namespace_does_not_modify_its_contents(): foo = Namespace() get_signature(foo) assert str(foo) == 'Namespace()'