diff --git a/CHANGES.rst b/CHANGES.rst
index 961bf72..d6965cb 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -5,7 +5,12 @@
 5.0.2 (unreleased)
 ==================
 
-- Nothing changed yet.
+- Ensure that objects that implement no interfaces (such as direct
+  subclasses of ``object``) still include ``Interface`` itself in
+  their ``__iro___`` and ``__sro___``. This fixes adapter registry
+  lookups for such objects when the adapter is registered for
+  ``Interface``. See `issue 197
+  <https://github.com/zopefoundation/zope.interface/issues/197>`_.
 
 
 5.0.1 (2020-03-21)
diff --git a/src/zope/interface/declarations.py b/src/zope/interface/declarations.py
index d85dbf4..e84a728 100644
--- a/src/zope/interface/declarations.py
+++ b/src/zope/interface/declarations.py
@@ -180,7 +180,7 @@ class _ImmutableDeclaration(Declaration):
         return iter(())
 
     def extends(self, interface, strict=True):
-        return False
+        return interface is self._ROOT
 
     def get(self, name, default=None):
         return default
diff --git a/src/zope/interface/interface.py b/src/zope/interface/interface.py
index 6a1ca2a..ac55633 100644
--- a/src/zope/interface/interface.py
+++ b/src/zope/interface/interface.py
@@ -1064,3 +1064,9 @@ from zope.interface.declarations import implementedBy
 from zope.interface.declarations import providedBy
 from zope.interface.exceptions import InvalidInterface
 from zope.interface.exceptions import BrokenImplementation
+
+# This ensures that ``Interface`` winds up in the flattened()
+# list of the immutable declaration. It correctly overrides changed()
+# as a no-op, so we bypass that.
+from zope.interface.declarations import _empty
+Specification.changed(_empty, _empty)

Regression: Objects with no declared interfaces used to implement Interface
In 5.0.x, the `_empty` `_ImmutableDeclaration` object does not include `Interface`, whereas in 4.7 `_empty` did. This breaks looking up adapter registrations for `Interface` if the provided object does not otherwise implement any interfaces. This includes things like:

- Instances of direct subclasses of `object`;
- (Python 2) Old style classes (not their instances).

See https://github.com/zopefoundation/zope.traversing/issues/14 for a practical failure.
diff --git a/src/zope/interface/tests/test_declarations.py b/src/zope/interface/tests/test_declarations.py
index b0875c4..9344968 100644
--- a/src/zope/interface/tests/test_declarations.py
+++ b/src/zope/interface/tests/test_declarations.py
@@ -74,7 +74,51 @@ class NamedTests(unittest.TestCase):
         self.assertEqual(foo.__component_name__, u'foo')
 
 
-class DeclarationTests(unittest.TestCase):
+class EmptyDeclarationTests(unittest.TestCase):
+    # Tests that should pass for all objects that are empty
+    # declarations. This includes a Declaration explicitly created
+    # that way, and the empty ImmutableDeclaration.
+    def _getEmpty(self):
+        from zope.interface.declarations import Declaration
+        return Declaration()
+
+    def test___iter___empty(self):
+        decl = self._getEmpty()
+        self.assertEqual(list(decl), [])
+
+    def test_flattened_empty(self):
+        from zope.interface.interface import Interface
+        decl = self._getEmpty()
+        self.assertEqual(list(decl.flattened()), [Interface])
+
+    def test___contains___empty(self):
+        from zope.interface.interface import Interface
+        decl = self._getEmpty()
+        self.assertNotIn(Interface, decl)
+
+    def test_extends_empty(self):
+        from zope.interface.interface import Interface
+        decl = self._getEmpty()
+        self.assertTrue(decl.extends(Interface))
+        self.assertTrue(decl.extends(Interface, strict=True))
+
+    def test_interfaces_empty(self):
+        decl = self._getEmpty()
+        l = list(decl.interfaces())
+        self.assertEqual(l, [])
+
+    def test___sro___(self):
+        from zope.interface.interface import Interface
+        decl = self._getEmpty()
+        self.assertEqual(decl.__sro__, (decl, Interface,))
+
+    def test___iro___(self):
+        from zope.interface.interface import Interface
+        decl = self._getEmpty()
+        self.assertEqual(decl.__iro__, (Interface,))
+
+
+class DeclarationTests(EmptyDeclarationTests):
 
     def _getTargetClass(self):
         from zope.interface.declarations import Declaration
@@ -128,10 +172,6 @@ class DeclarationTests(unittest.TestCase):
         decl = self._makeOne(IFoo)
         self.assertIn(IFoo, decl)
 
-    def test___iter___empty(self):
-        decl = self._makeOne()
-        self.assertEqual(list(decl), [])
-
     def test___iter___single_base(self):
         from zope.interface.interface import InterfaceClass
         IFoo = InterfaceClass('IFoo')
@@ -159,11 +199,6 @@ class DeclarationTests(unittest.TestCase):
         decl = self._makeOne(IBar, (IFoo, IBar))
         self.assertEqual(list(decl), [IBar, IFoo])
 
-    def test_flattened_empty(self):
-        from zope.interface.interface import Interface
-        decl = self._makeOne()
-        self.assertEqual(list(decl.flattened()), [Interface])
-
     def test_flattened_single_base(self):
         from zope.interface.interface import Interface
         from zope.interface.interface import InterfaceClass
@@ -244,7 +279,7 @@ class DeclarationTests(unittest.TestCase):
         self.assertEqual(list(after), [IFoo, IBar, IBaz])
 
 
-class TestImmutableDeclaration(unittest.TestCase):
+class TestImmutableDeclaration(EmptyDeclarationTests):
 
     def _getTargetClass(self):
         from zope.interface.declarations import _ImmutableDeclaration
@@ -297,6 +332,7 @@ class TestImmutableDeclaration(unittest.TestCase):
         self.assertIsNone(self._getEmpty().get('name'))
         self.assertEqual(self._getEmpty().get('name', 42), 42)
 
+
 class TestImplements(NameAndModuleComparisonTestsMixin,
                      unittest.TestCase):
 

pip install -e .[test]
parse_log_pytest
requirements.txt
pytest pytest-cov
apt-get update apt-get install -y gcc
3.9
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
coverage==7.8.0
exceptiongroup==1.2.2
iniconfig==2.1.0
packaging==24.2
pluggy==1.5.0
pytest==8.3.5
pytest-cov==6.0.0
tomli==2.2.1
zope.event==5.0
-e git+https://github.com/zopefoundation/zope.interface.git@1b83ad47e400358dc27e28d1dea013d44b394bde#egg=zope.interface
zope.testing==5.1

name: zope.interface
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.8.0
      - exceptiongroup==1.2.2
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - pytest==8.3.5
      - pytest-cov==6.0.0
      - tomli==2.2.1
      - zope-event==5.0
      - zope-testing==5.1
prefix: /opt/conda/envs/zope.interface

src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test___iro___ src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test___sro___ src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_extends_empty src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_flattened_empty
src/zope/interface/tests/test_declarations.py::NamedTests::test_class src/zope/interface/tests/test_declarations.py::NamedTests::test_function src/zope/interface/tests/test_declarations.py::NamedTests::test_instance src/zope/interface/tests/test_declarations.py::EmptyDeclarationTests::test___contains___empty src/zope/interface/tests/test_declarations.py::EmptyDeclarationTests::test___iro___ src/zope/interface/tests/test_declarations.py::EmptyDeclarationTests::test___iter___empty src/zope/interface/tests/test_declarations.py::EmptyDeclarationTests::test___sro___ src/zope/interface/tests/test_declarations.py::EmptyDeclarationTests::test_extends_empty src/zope/interface/tests/test_declarations.py::EmptyDeclarationTests::test_flattened_empty src/zope/interface/tests/test_declarations.py::EmptyDeclarationTests::test_interfaces_empty src/zope/interface/tests/test_declarations.py::DeclarationTests::test___add___related_interface src/zope/interface/tests/test_declarations.py::DeclarationTests::test___add___unrelated_interface src/zope/interface/tests/test_declarations.py::DeclarationTests::test___contains___empty src/zope/interface/tests/test_declarations.py::DeclarationTests::test___contains__w_base_interface src/zope/interface/tests/test_declarations.py::DeclarationTests::test___contains__w_self src/zope/interface/tests/test_declarations.py::DeclarationTests::test___contains__w_unrelated_iface src/zope/interface/tests/test_declarations.py::DeclarationTests::test___iro___ src/zope/interface/tests/test_declarations.py::DeclarationTests::test___iter___empty src/zope/interface/tests/test_declarations.py::DeclarationTests::test___iter___inheritance src/zope/interface/tests/test_declarations.py::DeclarationTests::test___iter___multiple_bases src/zope/interface/tests/test_declarations.py::DeclarationTests::test___iter___single_base src/zope/interface/tests/test_declarations.py::DeclarationTests::test___iter___w_nested_sequence_overlap src/zope/interface/tests/test_declarations.py::DeclarationTests::test___sro___ src/zope/interface/tests/test_declarations.py::DeclarationTests::test___sub___related_interface src/zope/interface/tests/test_declarations.py::DeclarationTests::test___sub___related_interface_by_inheritance src/zope/interface/tests/test_declarations.py::DeclarationTests::test___sub___unrelated_interface src/zope/interface/tests/test_declarations.py::DeclarationTests::test_changed_w_existing__v_attrs src/zope/interface/tests/test_declarations.py::DeclarationTests::test_changed_wo_existing__v_attrs src/zope/interface/tests/test_declarations.py::DeclarationTests::test_ctor_no_bases src/zope/interface/tests/test_declarations.py::DeclarationTests::test_ctor_w_implements_in_bases src/zope/interface/tests/test_declarations.py::DeclarationTests::test_ctor_w_interface_in_bases src/zope/interface/tests/test_declarations.py::DeclarationTests::test_extends_empty src/zope/interface/tests/test_declarations.py::DeclarationTests::test_flattened_empty src/zope/interface/tests/test_declarations.py::DeclarationTests::test_flattened_inheritance src/zope/interface/tests/test_declarations.py::DeclarationTests::test_flattened_multiple_bases src/zope/interface/tests/test_declarations.py::DeclarationTests::test_flattened_single_base src/zope/interface/tests/test_declarations.py::DeclarationTests::test_flattened_w_nested_sequence_overlap src/zope/interface/tests/test_declarations.py::DeclarationTests::test_interfaces_empty src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test___contains___empty src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test___iter___empty src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test__bases__ src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_change__bases__ src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_changed src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_dependents src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_extends_always_false src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_get_always_default src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_interfaces_empty src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_pickle src/zope/interface/tests/test_declarations.py::TestImmutableDeclaration::test_singleton src/zope/interface/tests/test_declarations.py::TestImplements::test___reduce__ src/zope/interface/tests/test_declarations.py::TestImplements::test___repr__ src/zope/interface/tests/test_declarations.py::TestImplements::test__ge__NotImplemented src/zope/interface/tests/test_declarations.py::TestImplements::test__gt__NotImplemented src/zope/interface/tests/test_declarations.py::TestImplements::test__le__NotImplemented src/zope/interface/tests/test_declarations.py::TestImplements::test__lt__NotImplemented src/zope/interface/tests/test_declarations.py::TestImplements::test_changed_deletes_super_cache src/zope/interface/tests/test_declarations.py::TestImplements::test_changed_does_not_add_super_cache src/zope/interface/tests/test_declarations.py::TestImplements::test_ctor_no_bases src/zope/interface/tests/test_declarations.py::TestImplements::test_proxy_equality src/zope/interface/tests/test_declarations.py::TestImplements::test_sort src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_builtins_added_to_cache src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_builtins_w_existing_cache src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_dictless_w_existing_Implements src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_dictless_w_existing_not_Implements src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_dictless_wo_existing_Implements_cant_assign___implemented__ src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_dictless_wo_existing_Implements_w_registrations src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_dictless_wo_existing_Implements_wo_registrations src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_no_assertions src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_oldstyle_class_no_assertions src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_super_multi_level_multi_inheritance src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_super_when_base_doesnt_implement_interface src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_super_when_base_implements_interface src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_super_when_base_implements_interface_diamond src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_super_when_base_is_object src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_super_when_parent_implements_interface_diamond src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_w_None_no_bases_not_factory src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_w_None_no_bases_w_class src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_w_None_no_bases_w_factory src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_w_existing_Implements src/zope/interface/tests/test_declarations.py::Test_implementedByFallback::test_w_existing_attr_as_Implements src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_builtins_added_to_cache src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_builtins_w_existing_cache src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_dictless_w_existing_Implements src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_dictless_w_existing_not_Implements src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_dictless_wo_existing_Implements_cant_assign___implemented__ src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_dictless_wo_existing_Implements_w_registrations src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_dictless_wo_existing_Implements_wo_registrations src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_no_assertions src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_oldstyle_class_no_assertions src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_optimizations src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_super_multi_level_multi_inheritance src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_super_when_base_doesnt_implement_interface src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_super_when_base_implements_interface src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_super_when_base_implements_interface_diamond src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_super_when_base_is_object src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_super_when_parent_implements_interface_diamond src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_w_None_no_bases_not_factory src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_w_None_no_bases_w_class src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_w_None_no_bases_w_factory src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_w_existing_Implements src/zope/interface/tests/test_declarations.py::Test_implementedBy::test_w_existing_attr_as_Implements src/zope/interface/tests/test_declarations.py::Test_classImplementsOnly::test_no_existing src/zope/interface/tests/test_declarations.py::Test_classImplementsOnly::test_w_existing_Implements src/zope/interface/tests/test_declarations.py::Test_classImplements::test_no_existing src/zope/interface/tests/test_declarations.py::Test_classImplements::test_w_existing_Implements src/zope/interface/tests/test_declarations.py::Test_classImplements::test_w_existing_Implements_w_bases src/zope/interface/tests/test_declarations.py::Test__implements_advice::test_no_existing_implements src/zope/interface/tests/test_declarations.py::Test_implementer::test_newstyle_class src/zope/interface/tests/test_declarations.py::Test_implementer::test_nonclass_can_assign_attr src/zope/interface/tests/test_declarations.py::Test_implementer::test_nonclass_cannot_assign_attr src/zope/interface/tests/test_declarations.py::Test_implementer::test_oldstyle_class src/zope/interface/tests/test_declarations.py::Test_implementer_only::test_function src/zope/interface/tests/test_declarations.py::Test_implementer_only::test_method src/zope/interface/tests/test_declarations.py::Test_implementer_only::test_newstyle_class src/zope/interface/tests/test_declarations.py::Test_implementer_only::test_oldstyle_class src/zope/interface/tests/test_declarations.py::Test_implementsOnly::test_called_once_from_class_w_bases src/zope/interface/tests/test_declarations.py::Test_implementsOnly::test_simple src/zope/interface/tests/test_declarations.py::Test_implements::test_called_from_function src/zope/interface/tests/test_declarations.py::Test_implements::test_called_once_from_class src/zope/interface/tests/test_declarations.py::Test_implements::test_called_twice_from_class src/zope/interface/tests/test_declarations.py::ProvidesClassTests::test___get___class src/zope/interface/tests/test_declarations.py::ProvidesClassTests::test___get___instance src/zope/interface/tests/test_declarations.py::ProvidesClassTests::test___reduce__ src/zope/interface/tests/test_declarations.py::ProvidesClassTests::test__repr__ src/zope/interface/tests/test_declarations.py::ProvidesClassTests::test_simple_class_one_interface src/zope/interface/tests/test_declarations.py::Test_Provides::test_no_cached_spec src/zope/interface/tests/test_declarations.py::Test_Provides::test_w_cached_spec src/zope/interface/tests/test_declarations.py::Test_directlyProvides::test_w_class src/zope/interface/tests/test_declarations.py::Test_directlyProvides::test_w_classless_object src/zope/interface/tests/test_declarations.py::Test_directlyProvides::test_w_normal_object src/zope/interface/tests/test_declarations.py::Test_alsoProvides::test_w_existing_provides src/zope/interface/tests/test_declarations.py::Test_alsoProvides::test_wo_existing_provides src/zope/interface/tests/test_declarations.py::Test_noLongerProvides::test_w_existing_provides_hit src/zope/interface/tests/test_declarations.py::Test_noLongerProvides::test_w_existing_provides_miss src/zope/interface/tests/test_declarations.py::Test_noLongerProvides::test_w_iface_implemented_by_class src/zope/interface/tests/test_declarations.py::Test_noLongerProvides::test_wo_existing_provides src/zope/interface/tests/test_declarations.py::ClassProvidesBaseFallbackTests::test_w_different_class src/zope/interface/tests/test_declarations.py::ClassProvidesBaseFallbackTests::test_w_same_class_via_class src/zope/interface/tests/test_declarations.py::ClassProvidesBaseFallbackTests::test_w_same_class_via_instance src/zope/interface/tests/test_declarations.py::ClassProvidesBaseTests::test_optimizations src/zope/interface/tests/test_declarations.py::ClassProvidesBaseTests::test_w_different_class src/zope/interface/tests/test_declarations.py::ClassProvidesBaseTests::test_w_same_class_via_class src/zope/interface/tests/test_declarations.py::ClassProvidesBaseTests::test_w_same_class_via_instance src/zope/interface/tests/test_declarations.py::ClassProvidesTests::test___reduce__ src/zope/interface/tests/test_declarations.py::ClassProvidesTests::test__repr__ src/zope/interface/tests/test_declarations.py::ClassProvidesTests::test_w_simple_metaclass src/zope/interface/tests/test_declarations.py::Test_directlyProvidedBy::test_w_declarations_in_class_but_not_instance src/zope/interface/tests/test_declarations.py::Test_directlyProvidedBy::test_w_declarations_in_instance_and_class src/zope/interface/tests/test_declarations.py::Test_directlyProvidedBy::test_w_declarations_in_instance_but_not_class src/zope/interface/tests/test_declarations.py::Test_directlyProvidedBy::test_wo_declarations_in_class_or_instance src/zope/interface/tests/test_declarations.py::Test_classProvides::test_called_from_function src/zope/interface/tests/test_declarations.py::Test_classProvides::test_called_once_from_class src/zope/interface/tests/test_declarations.py::Test_classProvides::test_called_twice_from_class src/zope/interface/tests/test_declarations.py::Test_provider::test_w_class src/zope/interface/tests/test_declarations.py::Test_moduleProvides::test_called_from_class src/zope/interface/tests/test_declarations.py::Test_moduleProvides::test_called_from_function src/zope/interface/tests/test_declarations.py::Test_moduleProvides::test_called_once_from_module_scope src/zope/interface/tests/test_declarations.py::Test_moduleProvides::test_called_twice_from_module_scope src/zope/interface/tests/test_declarations.py::Test_getObjectSpecificationFallback::test_existing_provides src/zope/interface/tests/test_declarations.py::Test_getObjectSpecificationFallback::test_existing_provides_is_not_spec src/zope/interface/tests/test_declarations.py::Test_getObjectSpecificationFallback::test_existing_provides_is_spec src/zope/interface/tests/test_declarations.py::Test_getObjectSpecificationFallback::test_wo_existing_provides_classless src/zope/interface/tests/test_declarations.py::Test_getObjectSpecificationFallback::test_wo_provides_on_class_w_implements src/zope/interface/tests/test_declarations.py::Test_getObjectSpecificationFallback::test_wo_provides_on_class_wo_implements src/zope/interface/tests/test_declarations.py::Test_getObjectSpecification::test_existing_provides src/zope/interface/tests/test_declarations.py::Test_getObjectSpecification::test_existing_provides_is_not_spec src/zope/interface/tests/test_declarations.py::Test_getObjectSpecification::test_existing_provides_is_spec src/zope/interface/tests/test_declarations.py::Test_getObjectSpecification::test_optimizations src/zope/interface/tests/test_declarations.py::Test_getObjectSpecification::test_wo_existing_provides_classless src/zope/interface/tests/test_declarations.py::Test_getObjectSpecification::test_wo_provides_on_class_w_implements src/zope/interface/tests/test_declarations.py::Test_getObjectSpecification::test_wo_provides_on_class_wo_implements src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_super_multi_level_multi_inheritance src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_super_when_base_doesnt_implement_interface src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_super_when_base_implements_interface src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_super_when_base_is_object src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_super_when_object_directly_provides src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_w_providedBy_invalid_spec src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_w_providedBy_invalid_spec_class_w_implements src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_w_providedBy_invalid_spec_w_provides_no_provides_on_class src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_w_providedBy_invalid_spec_w_provides_same_provides_on_class src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_w_providedBy_valid_spec src/zope/interface/tests/test_declarations.py::Test_providedByFallback::test_wo_providedBy_on_class_wo_implements src/zope/interface/tests/test_declarations.py::Test_providedBy::test_optimizations src/zope/interface/tests/test_declarations.py::Test_providedBy::test_super_multi_level_multi_inheritance src/zope/interface/tests/test_declarations.py::Test_providedBy::test_super_when_base_doesnt_implement_interface src/zope/interface/tests/test_declarations.py::Test_providedBy::test_super_when_base_implements_interface src/zope/interface/tests/test_declarations.py::Test_providedBy::test_super_when_base_is_object src/zope/interface/tests/test_declarations.py::Test_providedBy::test_super_when_object_directly_provides src/zope/interface/tests/test_declarations.py::Test_providedBy::test_w_providedBy_invalid_spec src/zope/interface/tests/test_declarations.py::Test_providedBy::test_w_providedBy_invalid_spec_class_w_implements src/zope/interface/tests/test_declarations.py::Test_providedBy::test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class src/zope/interface/tests/test_declarations.py::Test_providedBy::test_w_providedBy_invalid_spec_w_provides_no_provides_on_class src/zope/interface/tests/test_declarations.py::Test_providedBy::test_w_providedBy_invalid_spec_w_provides_same_provides_on_class src/zope/interface/tests/test_declarations.py::Test_providedBy::test_w_providedBy_valid_spec src/zope/interface/tests/test_declarations.py::Test_providedBy::test_wo_providedBy_on_class_wo_implements src/zope/interface/tests/test_declarations.py::ObjectSpecificationDescriptorFallbackTests::test_accessed_via_class src/zope/interface/tests/test_declarations.py::ObjectSpecificationDescriptorFallbackTests::test_accessed_via_inst_w_provides src/zope/interface/tests/test_declarations.py::ObjectSpecificationDescriptorFallbackTests::test_accessed_via_inst_wo_provides src/zope/interface/tests/test_declarations.py::ObjectSpecificationDescriptorTests::test_accessed_via_class src/zope/interface/tests/test_declarations.py::ObjectSpecificationDescriptorTests::test_accessed_via_inst_w_provides src/zope/interface/tests/test_declarations.py::ObjectSpecificationDescriptorTests::test_accessed_via_inst_wo_provides src/zope/interface/tests/test_declarations.py::ObjectSpecificationDescriptorTests::test_optimizations
src/zope/interface/declarations.py src/zope/interface/interface.py CHANGES.rst
src/zope/interface/declarations.py src/zope/interface/interface.py CHANGES.rst