From 4b9da6af118b4566da4b9a36eb41a047cd587a76 Mon Sep 17 00:00:00 2001 From: Michael Merickel Date: Mon, 5 Nov 2018 21:58:03 -0600 Subject: call fix_registry so that queryAdapterOrSelf is available fixes #3416 --- src/pyramid/testing.py | 1 + tests/test_testing.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/pyramid/testing.py b/src/pyramid/testing.py index ea86f5852..f700b5a4e 100644 --- a/src/pyramid/testing.py +++ b/src/pyramid/testing.py @@ -509,6 +509,7 @@ def setUp( ) if settings is None: settings = {} + config._fix_registry() if getattr(registry, 'settings', None) is None: config._set_settings(settings) if hasattr(registry, 'registerUtility'): diff --git a/tests/test_testing.py b/tests/test_testing.py index 16c94ee19..5e11c2487 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -434,6 +434,20 @@ class Test_setUp(unittest.TestCase): config = self._callFUT(hook_zca=False, settings=dict(a=1)) self.assertEqual(config.registry.settings['a'], 1) + def test_it_with_unpatched_registry(self): + from zope.interface.registry import Components + + class DummyRegistry(Components, dict): + pass + + dummy_registry = DummyRegistry() + config = self._callFUT( + registry=dummy_registry, hook_zca=False, settings=dict(a=1) + ) + self.assertEqual(config.registry.settings['a'], 1) + dummy = DummyEvent() + self.assertIs(dummy_registry.queryAdapterOrSelf(dummy, IDummy), dummy) + class Test_cleanUp(Test_setUp): def _callFUT(self, *arg, **kw): -- cgit v1.2.3