[z3-checkins] r22055 - z3/Five/trunk/site
regebro at codespeak.net
regebro at codespeak.net
Thu Jan 12 18:32:07 CET 2006
Author: regebro
Date: Thu Jan 12 18:32:06 2006
New Revision: 22055
Modified:
z3/Five/trunk/site/metaconfigure.py
Log:
Added a warning if a class got a local site hook twice.
Modified: z3/Five/trunk/site/metaconfigure.py
==============================================================================
--- z3/Five/trunk/site/metaconfigure.py (original)
+++ z3/Five/trunk/site/metaconfigure.py Thu Jan 12 18:32:06 2006
@@ -25,13 +25,17 @@
from Products.Five.site.localsite import FiveSite
+from zLOG import LOG, WARNING
+
_localsite_monkies = []
def classSiteHook(class_, site_class):
- setattr(class_, 'getSiteManager',
- site_class.getSiteManager.im_func)
- setattr(class_, 'setSiteManager',
- site_class.setSiteManager.im_func)
- _localsite_monkies.append(class_)
+ if class_ in _localsite_monkies:
+ LOG('Five', WARNING, "Class %s already has a site hook" % class_)
+ else:
+ _localsite_monkies.append(class_)
+ setattr(class_, 'getSiteManager', site_class.getSiteManager.im_func)
+ setattr(class_, 'setSiteManager', site_class.setSiteManager.im_func)
+
def installSiteHook(_context, class_, site_class=None):
if site_class is None:
@@ -59,10 +63,10 @@
def uninstallSiteHooks():
for class_ in _localsite_monkies:
+ _localsite_monkies.remove(class_)
delattr(class_, 'getSiteManager')
delattr(class_, 'setSiteManager')
classImplementsOnly(class_, implementedBy(class_)-IPossibleSite)
- _localsite_monkies.remove(class_)
from zope.testing.cleanup import addCleanUp
addCleanUp(uninstallSiteHooks)
More information about the z3-checkins
mailing list