summaryrefslogtreecommitdiff
path: root/repoze/bfg/registry.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/registry.py')
-rw-r--r--repoze/bfg/registry.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/repoze/bfg/registry.py b/repoze/bfg/registry.py
index c62a92a7d..d1dff6744 100644
--- a/repoze/bfg/registry.py
+++ b/repoze/bfg/registry.py
@@ -3,9 +3,10 @@ import threading
import zope.component
from zope.component import getGlobalSiteManager
+from zope.component import getSiteManager as original_getSiteManager
from zope.component.interfaces import ComponentLookupError
from zope.component.interfaces import IComponentLookup
-from zope.component import getSiteManager as original_getSiteManager
+from zope.component.registry import Components
from zope.deferredimport import deprecated
@@ -23,6 +24,12 @@ deprecated(
get_options = "repoze.bfg.settings:get_options",
)
+class Registry(Components):
+ def notify(self, *events):
+ # iterating over subscribers assures they get executed
+ for ignored in self.subscribers(events, None):
+ pass
+
class ThreadLocalRegistryManager(threading.local):
def __init__(self):
self.stack = []
@@ -90,9 +97,5 @@ def getSiteManager(context=None):
raise ComponentLookupError(*error.args)
from zope.testing.cleanup import addCleanUp
-try:
- addCleanUp(original_getSiteManager.reset)
-except AttributeError:
- # zope.hookable not yet installed
- pass
+addCleanUp(original_getSiteManager.reset) # AttributeError: zope.hookable not installed
addCleanUp(registry_manager.clear)