refactor: Move subject of inspection to rootdir

This commit is contained in:
Takeshi KOMIYA 2019-04-13 22:48:49 +09:00
parent bc1dc9930a
commit 4aecac8251
3 changed files with 73 additions and 64 deletions

View File

@ -0,0 +1,11 @@
from functools import partial
def func():
pass
partial_func = partial(func)
builtin_func = print
partial_builtin_func = partial(print)

View File

@ -0,0 +1,24 @@
from functools import partialmethod
class Base():
def meth(self):
pass
@staticmethod
def staticmeth():
pass
@classmethod
def classmeth(cls):
pass
@property
def prop(self):
pass
partialmeth = partialmethod(meth)
class Inherited(Base):
pass

View File

@ -383,78 +383,52 @@ def test_dict_customtype():
assert "<CustomType(2)>: 2" in description assert "<CustomType(2)>: 2" in description
def test_isstaticmethod(): @pytest.mark.sphinx(testroot='ext-autodoc')
class Foo(): def test_isstaticmethod(app):
@staticmethod from target.methods import Base, Inherited
def method1():
pass
def method2(self): assert inspect.isstaticmethod(Base.staticmeth, Base, 'staticmeth') is True
pass assert inspect.isstaticmethod(Base.meth, Base, 'meth') is False
assert inspect.isstaticmethod(Inherited.staticmeth, Inherited, 'staticmeth') is True
class Bar(Foo): assert inspect.isstaticmethod(Inherited.meth, Inherited, 'meth') is False
pass
assert inspect.isstaticmethod(Foo.method1, Foo, 'method1') is True
assert inspect.isstaticmethod(Foo.method2, Foo, 'method2') is False
assert inspect.isstaticmethod(Bar.method1, Bar, 'method1') is True
assert inspect.isstaticmethod(Bar.method2, Bar, 'method2') is False
def test_isfunction(): @pytest.mark.sphinx(testroot='ext-autodoc')
def func(x, y, z): def test_isfunction(app):
pass from target.functions import builtin_func, partial_builtin_func
from target.functions import func, partial_func
from target.methods import Base
func2 = functools.partial(func, 1) assert inspect.isfunction(func) is True # function
assert inspect.isfunction(partial_func) is True # partial-ed function
class Foo: assert inspect.isfunction(Base.meth) is True # method of class
def meth(self): assert inspect.isfunction(Base.partialmeth) is True # partial-ed method of class
pass assert inspect.isfunction(Base().meth) is False # method of instance
assert inspect.isfunction(builtin_func) is False # builtin function
print2 = functools.partial(print, 1) assert inspect.isfunction(partial_builtin_func) is False # partial-ed builtin function
assert inspect.isfunction(func) is True # function
assert inspect.isfunction(func2) is True # partial-ed function
assert inspect.isfunction(Foo.meth) is True # method of class
assert inspect.isfunction(Foo().meth) is False # method of instance
assert inspect.isfunction(print) is False # builtin function
assert inspect.isfunction(print2) is False # partial-ed builtin function
def test_isbuiltin(): @pytest.mark.sphinx(testroot='ext-autodoc')
def func(x, y, z): def test_isbuiltin(app):
pass from target.functions import builtin_func, partial_builtin_func
from target.functions import func, partial_func
from target.methods import Base
func2 = functools.partial(func, 1) assert inspect.isbuiltin(builtin_func) is True # builtin function
assert inspect.isbuiltin(partial_builtin_func) is True # partial-ed builtin function
class Foo: assert inspect.isbuiltin(func) is False # function
def meth(self): assert inspect.isbuiltin(partial_func) is False # partial-ed function
pass assert inspect.isbuiltin(Base.meth) is False # method of class
assert inspect.isbuiltin(Base().meth) is False # method of instance
print2 = functools.partial(print, 1)
assert inspect.isbuiltin(print) is True # builtin function
assert inspect.isbuiltin(print2) is True # partial-ed builtin function
assert inspect.isbuiltin(func) is False # function
assert inspect.isbuiltin(func2) is False # partial-ed function
assert inspect.isbuiltin(Foo.meth) is False # method of class
assert inspect.isbuiltin(Foo().meth) is False # method of instance
def test_isdescriptor(): @pytest.mark.sphinx(testroot='ext-autodoc')
def func(x, y, z): def test_isdescriptor(app):
pass from target.functions import func
from target.methods import Base
class Foo: assert inspect.isdescriptor(Base.prop) is True # property of class
def meth(self): assert inspect.isdescriptor(Base().prop) is False # property of instance
pass assert inspect.isdescriptor(Base.meth) is True # method of class
assert inspect.isdescriptor(Base().meth) is True # method of instance
@property
def prop(self):
pass
assert inspect.isdescriptor(Foo.prop) is True # property of class
assert inspect.isdescriptor(Foo().prop) is False # property of instance
assert inspect.isdescriptor(Foo.meth) is True # method of class
assert inspect.isdescriptor(Foo().meth) is True # method of instance
assert inspect.isdescriptor(func) is True # function assert inspect.isdescriptor(func) is True # function