self = <swh.storage.tests.test_in_memory.TestInMemoryStorage object at 0x7fd1023fdbe0>
swh_storage_backend_config = {'cls': 'memory', 'journal_writer': {'cls': 'memory'}}
def test_types(self, swh_storage_backend_config):
"""Checks all methods of StorageInterface are implemented by this
backend, and that they have the same signature."""
# Create an instance of the protocol (which cannot be instantiated
# directly, so this creates a subclass, then instantiates it)
interface = type("_", (StorageInterface,), {})()
storage = get_storage(**swh_storage_backend_config)
assert "content_add" in dir(interface)
missing_methods = []
for meth_name in dir(interface):
if meth_name.startswith("_"):
continue
interface_meth = getattr(interface, meth_name)
try:
concrete_meth = getattr(storage, meth_name)
except AttributeError:
if not getattr(interface_meth, "deprecated_endpoint", False):
# The backend is missing a (non-deprecated) endpoint
missing_methods.append(meth_name)
continue
> expected_signature = inspect.signature(interface_meth)
.tox/py3/lib/python3.7/site-packages/swh/storage/tests/storage_tests.py:155:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.7/inspect.py:3083: in signature
return Signature.from_callable(obj, follow_wrapped=follow_wrapped)
/usr/lib/python3.7/inspect.py:2833: in from_callable
follow_wrapper_chains=follow_wrapped)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj = None
def _signature_from_callable(obj, *,
follow_wrapper_chains=True,
skip_bound_arg=True,
sigcls):
"""Private helper function to get signature for arbitrary
callable objects.
"""
if not callable(obj):
> raise TypeError('{!r} is not a callable object'.format(obj))
E TypeError: None is not a callable object
/usr/lib/python3.7/inspect.py:2208: TypeError
TEST RESULT
TEST RESULT
- Run At
- Oct 21 2022, 5:04 PM