diff options
author | Jason Madden <jamadden@gmail.com> | 2020-03-10 05:57:39 -0500 |
---|---|---|
committer | Jason Madden <jamadden@gmail.com> | 2020-03-10 05:57:39 -0500 |
commit | fb8180d4521dc7333498731d1361a82d0034582b (patch) | |
tree | 65aca4692bf0a76bacd6213f985018e1375831b9 | |
parent | 364fd0caf88d8b8a12ca81a0ab80b039cdc9f6c9 (diff) | |
download | zope-interface-fb8180d4521dc7333498731d1361a82d0034582b.tar.gz |
Add additional low-level tests for super() unwrapping.
-rw-r--r-- | src/zope/interface/tests/test_adapter.py | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/zope/interface/tests/test_adapter.py b/src/zope/interface/tests/test_adapter.py index 6703a48..0456b1c 100644 --- a/src/zope/interface/tests/test_adapter.py +++ b/src/zope/interface/tests/test_adapter.py @@ -499,9 +499,23 @@ class LookupBaseFallbackTests(unittest.TestCase): req, prv, _default = object(), object(), object() lb = self._makeOne(uc_lookup=_lookup) adapted = lb.adapter_hook(prv, req, 'C', _default) - self.assertTrue(adapted is _adapter) + self.assertIs(adapted, _adapter) self.assertEqual(_f_called_with, [req]) + def test_adapter_hook_super_unwraps(self): + _f_called_with = [] + def _factory(context): + _f_called_with.append(context) + return context + def _lookup(self, required, provided, name=''): + return _factory + required = super(LookupBaseFallbackTests, self) + provided = object() + lb = self._makeOne(uc_lookup=_lookup) + adapted = lb.adapter_hook(provided, required) + self.assertIs(adapted, self) + self.assertEqual(_f_called_with, [self]) + def test_queryAdapter(self): _f_called_with = [] _adapter = object() @@ -1073,6 +1087,29 @@ class AdapterLookupBaseTests(unittest.TestCase): self.assertTrue(result is _expected) self.assertEqual(_called_with, [foo]) + def test_queryMultiAdapter_super_unwraps(self): + alb = self._makeOne(self._makeRegistry()) + def lookup(*args): + return factory + def factory(*args): + return args + alb.lookup = lookup + + objects = [ + super(AdapterLookupBaseTests, self), + 42, + "abc", + super(AdapterLookupBaseTests, self), + ] + + result = alb.queryMultiAdapter(objects, None) + self.assertEqual(result, ( + self, + 42, + "abc", + self, + )) + def test__uncached_lookupAll_empty_ro(self): from zope.interface.interface import InterfaceClass IFoo = InterfaceClass('IFoo') |