Author: jmorliaguet
Date: Thu Apr 20 23:24:34 2006
New Revision: 2918

Modified:
   cpsskins/branches/paris-sprint-2006/doc/registration.txt
Log:

- test update for the new registry API



Modified: cpsskins/branches/paris-sprint-2006/doc/registration.txt
==============================================================================
--- cpsskins/branches/paris-sprint-2006/doc/registration.txt    (original)
+++ cpsskins/branches/paris-sprint-2006/doc/registration.txt    Thu Apr 20 
23:24:34 2006
@@ -5,12 +5,6 @@
 
 This is meant for testing the new Zope3 registration API
 
-    >>> from cpsskins.utils import getThemeManager
-    >>> from zope.component import getSiteManager
-
-    >>> from cpsskins.thememanager import ThemeManagementFolder
-    >>> from cpsskins.thememanager import IThemeManagementFolder
-
 Create a site structure:
 
     >>> from zope.app.folder import Folder
@@ -23,6 +17,7 @@
     >>> from zope.app.testing import setup
     >>> sm = setup.createSiteManager(folder, True)
 
+    >>> from zope.component import getSiteManager
     >>> getSiteManager(folder) is sm
     True
 
@@ -32,6 +27,19 @@
 Create a theme management folder and register it as a local utility
 in the local site manager
 
+    >>> from zope.component.persistentregistry import PersistentComponents
+    >>> from zope.app.container.btree import BTreeContainer
+    >>> from zope.interface import Interface, implements
+
+    >>> from cpsskins.thememanager import IThemeManagementFolder
+
+    >>> class ThemeManagementFolder(BTreeContainer, PersistentComponents):
+    ...     implements(IThemeManagementFolder)
+    ...
+    ...     def __init__(self, **kw):
+    ...         BTreeContainer.__init__(self)
+    ...         PersistentComponents.__init__(self)
+
     >>> tmutil = ThemeManagementFolder()
     >>> sm.registerUtility(tmutil, IThemeManagementFolder)
 
@@ -40,6 +48,7 @@
 
 The theme management folder is available through getThemeManager(context)
 
+    >>> from cpsskins.utils import getThemeManager
     >>> getThemeManager(folder) is tmutil
     True
 
@@ -49,3 +58,83 @@
     >>> getThemeManager(root) is None
     True
 
+We add a storage to the theme management folder:
+
+    >>> from cpsskins.storage import Storage
+    >>> from cpsskins.storage.interfaces import IStorage
+
+    >>> tmutil[u'storage'] = storage = Storage()
+    >>> tmutil.registerUtility(storage, IStorage)
+
+    >>> tmutil.getUtility(IStorage) is storage
+    True
+
+
+The theme management folder can be obtained in the context of the storage:
+
+    >>> getThemeManager(storage) is tmutil
+    True
+
+
+Testing the registration API for global and local utilities:
+
+Global utilities:
+
+    >>> from zope.component import getGlobalSiteManager
+
+    >>> from cpsskins.setup.interfaces import ISetting
+    >>> from cpsskins.setup.interfaces import IGlobalSetting
+    >>> from cpsskins.setup.setting import GlobalSetting
+    >>> from cpsskins.setup.test.dummy import DummyResource
+
+    >>> root[u'r1'] = r1 = DummyResource()
+    >>> global_setting = GlobalSetting(resource=r1)
+
+    >>> gsm = getGlobalSiteManager()
+    >>> gsm.registerUtility(global_setting, ISetting, u's1')
+
+    >>> gsm.queryUtility(ISetting, u's1') is global_setting
+    True
+
+    >>> gsm.unregisterUtility(provided=ISetting, name=u's1')
+    True
+
+    >>> gsm.queryUtility(ISetting, u's1') is None
+    True
+
+
+Local utilities:
+
+    >>> from cpsskins.setup.interfaces import ILocalSetting
+    >>> from cpsskins.setup.setting import LocalSetting
+
+    >>> root[u'r2'] = r2 = DummyResource()
+    >>> local_setting = LocalSetting(resource=r2)
+
+    >>> from cpsskins.setup.settings import ISettings
+
+    >>> class Settings(BTreeContainer, PersistentComponents):
+    ...     implements(ISettings)
+    ...
+    ...     def __init__(self, **kw):
+    ...         BTreeContainer.__init__(self)
+    ...         PersistentComponents.__init__(self)
+
+    >>> settings = Settings()
+    >>> settings.registerUtility(local_setting, ISetting, u's2')
+
+    >>> settings.queryUtility(ISetting, u's2') is local_setting
+    True
+
+    >>> settings.unregisterUtility(provided=ISetting, name=u's2')
+    True
+
+    >>> settings.queryUtility(ISetting, u'r2') is None
+    True
+
+Local utilities overriding global utilities:
+
+    >>> gsm.registerUtility(global_setting, ISetting, u's3')
+    >>> settings.registerUtility(local_setting, ISetting, u's3')
+
+    TODO
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to