summaryrefslogtreecommitdiff
path: root/src/zope/interface/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/zope/interface/tests')
-rw-r--r--src/zope/interface/tests/test_adapter.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/zope/interface/tests/test_adapter.py b/src/zope/interface/tests/test_adapter.py
index 25cb4bb..6703a48 100644
--- a/src/zope/interface/tests/test_adapter.py
+++ b/src/zope/interface/tests/test_adapter.py
@@ -997,6 +997,24 @@ class AdapterLookupBaseTests(unittest.TestCase):
result = alb.queryMultiAdapter((foo,), IBar, default=_default)
self.assertTrue(result is _default)
+ def test_queryMultiAdapter_errors_on_attribute_access(self):
+ # Which leads to using the _empty singleton as "requires"
+ # argument. See https://github.com/zopefoundation/zope.interface/issues/162
+ from zope.interface.interface import InterfaceClass
+ IFoo = InterfaceClass('IFoo')
+ registry = self._makeRegistry()
+ alb = self._makeOne(registry)
+ alb.lookup = alb._uncached_lookup
+ class UnexpectedErrorsLikeAcquisition(object):
+
+ def __getattribute__(self, name):
+ raise RuntimeError("Acquisition does this. Ha-ha!")
+
+ result = alb.queryMultiAdapter(
+ (UnexpectedErrorsLikeAcquisition(),),
+ IFoo,
+ )
+
def test_queryMultiAdaptor_factory_miss(self):
from zope.interface.declarations import implementer
from zope.interface.interface import InterfaceClass