commit
2b3ac35780
|
@ -259,6 +259,8 @@ class MultiCall:
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
def varnames(func):
|
def varnames(func):
|
||||||
|
if not inspect.isfunction(func) and not inspect.ismethod(func):
|
||||||
|
func = getattr(func, '__call__', func)
|
||||||
ismethod = inspect.ismethod(func)
|
ismethod = inspect.ismethod(func)
|
||||||
rawcode = py.code.getrawcode(func)
|
rawcode = py.code.getrawcode(func)
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -340,8 +340,12 @@ def test_varnames():
|
||||||
class A:
|
class A:
|
||||||
def f(self, y):
|
def f(self, y):
|
||||||
pass
|
pass
|
||||||
|
class B(object):
|
||||||
|
def __call__(self, z):
|
||||||
|
pass
|
||||||
assert varnames(f) == ("x",)
|
assert varnames(f) == ("x",)
|
||||||
assert varnames(A().f) == ('y',)
|
assert varnames(A().f) == ('y',)
|
||||||
|
assert varnames(B()) == ('z',)
|
||||||
|
|
||||||
class TestMultiCall:
|
class TestMultiCall:
|
||||||
def test_uses_copy_of_methods(self):
|
def test_uses_copy_of_methods(self):
|
||||||
|
|
Loading…
Reference in New Issue