[Checkins] SVN: zope.browsermenu/trunk/src/zope/browsermenu/ Rename "fields" submodule to "field" as it only contains one field.
Dan Korostelev
nadako at gmail.com
Mon Aug 24 10:35:53 EDT 2009
Log message for revision 103152:
Rename "fields" submodule to "field" as it only contains one field.
Changed:
A zope.browsermenu/trunk/src/zope/browsermenu/field.py
D zope.browsermenu/trunk/src/zope/browsermenu/fields.py
U zope.browsermenu/trunk/src/zope/browsermenu/metadirectives.py
U zope.browsermenu/trunk/src/zope/browsermenu/tests/test_fields.py
-=-
Copied: zope.browsermenu/trunk/src/zope/browsermenu/field.py (from rev 103151, zope.browsermenu/trunk/src/zope/browsermenu/fields.py)
===================================================================
--- zope.browsermenu/trunk/src/zope/browsermenu/field.py (rev 0)
+++ zope.browsermenu/trunk/src/zope/browsermenu/field.py 2009-08-24 14:35:52 UTC (rev 103152)
@@ -0,0 +1,109 @@
+#############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Menu field
+
+$Id: fields.py 100240 2009-05-22 16:33:41Z faassen $
+"""
+__docformat__ = 'restructuredtext'
+
+from zope.component import queryUtility
+from zope.component.interfaces import ComponentLookupError
+from zope.configuration.exceptions import ConfigurationError
+from zope.configuration.fields import GlobalObject
+from zope.schema import ValidationError
+
+from zope.browsermenu.interfaces import IMenuItemType
+
+
+class MenuField(GlobalObject):
+ r"""This fields represents a menu (item type).
+
+ Besides being able to look up the menu by importing it, we also try
+ to look up the name in the site manager.
+
+ >>> from zope.interface import directlyProvides
+ >>> from zope.interface.interface import InterfaceClass
+
+ >>> menu1 = InterfaceClass('menu1', (),
+ ... __doc__='Menu Item Type: menu1',
+ ... __module__='zope.app.menus')
+ >>> directlyProvides(menu1, IMenuItemType)
+
+ >>> menus = None
+ >>> class Resolver(object):
+ ... def resolve(self, path):
+ ... if path.startswith('zope.app.menus') and \
+ ... hasattr(menus, 'menu1') or \
+ ... path == 'zope.browsermenu.menus.menu1':
+ ... return menu1
+ ... raise ConfigurationError('menu1')
+
+ >>> field = MenuField()
+ >>> field = field.bind(Resolver())
+
+ Test 1: Import the menu
+ -----------------------
+
+ >>> field.fromUnicode('zope.browsermenu.menus.menu1') is menu1
+ True
+
+ Test 2: We have a shortcut name. Import the menu from `zope.app.menus1`.
+ ------------------------------------------------------------------------
+
+ >>> from types import ModuleType as module
+ >>> import sys
+ >>> menus = module('menus')
+ >>> old = sys.modules.get('zope.app.menus', None)
+ >>> sys.modules['zope.app.menus'] = menus
+ >>> setattr(menus, 'menu1', menu1)
+
+ >>> field.fromUnicode('menu1') is menu1
+ True
+
+ >>> if old is not None:
+ ... sys.modules['zope.app.menus'] = old
+
+ Test 3: Get the menu from the Site Manager
+ ------------------------------------------
+
+ >>> from zope.component import provideUtility
+ >>> provideUtility(menu1, IMenuItemType, 'menu1')
+
+ >>> field.fromUnicode('menu1') is menu1
+ True
+ """
+
+ def fromUnicode(self, u):
+ name = str(u.strip())
+
+ try:
+ value = queryUtility(IMenuItemType, name)
+ except ComponentLookupError:
+ # The component architecture is not up and running.
+ pass
+ else:
+ if value is not None:
+ self.validate(value)
+ return value
+
+ try:
+ value = self.context.resolve('zope.app.menus.'+name)
+ except ConfigurationError, v:
+ try:
+ value = self.context.resolve(name)
+ except ConfigurationError, v:
+ raise ValidationError(v)
+
+ self.validate(value)
+ return value
Deleted: zope.browsermenu/trunk/src/zope/browsermenu/fields.py
===================================================================
--- zope.browsermenu/trunk/src/zope/browsermenu/fields.py 2009-08-24 14:27:26 UTC (rev 103151)
+++ zope.browsermenu/trunk/src/zope/browsermenu/fields.py 2009-08-24 14:35:52 UTC (rev 103152)
@@ -1,109 +0,0 @@
-#############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Browser-Presentation related Fields.
-
-$Id: fields.py 100240 2009-05-22 16:33:41Z faassen $
-"""
-__docformat__ = 'restructuredtext'
-
-from zope.component import queryUtility
-from zope.component.interfaces import ComponentLookupError
-from zope.configuration.exceptions import ConfigurationError
-from zope.configuration.fields import GlobalObject
-from zope.schema import ValidationError
-
-from zope.browsermenu.interfaces import IMenuItemType
-
-
-class MenuField(GlobalObject):
- r"""This fields represents a menu (item type).
-
- Besides being able to look up the menu by importing it, we also try
- to look up the name in the site manager.
-
- >>> from zope.interface import directlyProvides
- >>> from zope.interface.interface import InterfaceClass
-
- >>> menu1 = InterfaceClass('menu1', (),
- ... __doc__='Menu Item Type: menu1',
- ... __module__='zope.app.menus')
- >>> directlyProvides(menu1, IMenuItemType)
-
- >>> menus = None
- >>> class Resolver(object):
- ... def resolve(self, path):
- ... if path.startswith('zope.app.menus') and \
- ... hasattr(menus, 'menu1') or \
- ... path == 'zope.browsermenu.menus.menu1':
- ... return menu1
- ... raise ConfigurationError('menu1')
-
- >>> field = MenuField()
- >>> field = field.bind(Resolver())
-
- Test 1: Import the menu
- -----------------------
-
- >>> field.fromUnicode('zope.browsermenu.menus.menu1') is menu1
- True
-
- Test 2: We have a shortcut name. Import the menu from `zope.app.menus1`.
- ------------------------------------------------------------------------
-
- >>> from types import ModuleType as module
- >>> import sys
- >>> menus = module('menus')
- >>> old = sys.modules.get('zope.app.menus', None)
- >>> sys.modules['zope.app.menus'] = menus
- >>> setattr(menus, 'menu1', menu1)
-
- >>> field.fromUnicode('menu1') is menu1
- True
-
- >>> if old is not None:
- ... sys.modules['zope.app.menus'] = old
-
- Test 3: Get the menu from the Site Manager
- ------------------------------------------
-
- >>> from zope.component import provideUtility
- >>> provideUtility(menu1, IMenuItemType, 'menu1')
-
- >>> field.fromUnicode('menu1') is menu1
- True
- """
-
- def fromUnicode(self, u):
- name = str(u.strip())
-
- try:
- value = queryUtility(IMenuItemType, name)
- except ComponentLookupError:
- # The component architecture is not up and running.
- pass
- else:
- if value is not None:
- self.validate(value)
- return value
-
- try:
- value = self.context.resolve('zope.app.menus.'+name)
- except ConfigurationError, v:
- try:
- value = self.context.resolve(name)
- except ConfigurationError, v:
- raise ValidationError(v)
-
- self.validate(value)
- return value
Modified: zope.browsermenu/trunk/src/zope/browsermenu/metadirectives.py
===================================================================
--- zope.browsermenu/trunk/src/zope/browsermenu/metadirectives.py 2009-08-24 14:27:26 UTC (rev 103151)
+++ zope.browsermenu/trunk/src/zope/browsermenu/metadirectives.py 2009-08-24 14:35:52 UTC (rev 103152)
@@ -24,7 +24,7 @@
from zope.security.zcml import Permission
from zope.component.zcml import IBasicViewInformation
-from zope.browsermenu.fields import MenuField
+from zope.browsermenu.field import MenuField
class IMenuDirective(Interface):
Modified: zope.browsermenu/trunk/src/zope/browsermenu/tests/test_fields.py
===================================================================
--- zope.browsermenu/trunk/src/zope/browsermenu/tests/test_fields.py 2009-08-24 14:27:26 UTC (rev 103151)
+++ zope.browsermenu/trunk/src/zope/browsermenu/tests/test_fields.py 2009-08-24 14:35:52 UTC (rev 103152)
@@ -20,7 +20,7 @@
def test_suite():
return unittest.TestSuite((
- doctest.DocTestSuite('zope.browsermenu.fields',
+ doctest.DocTestSuite('zope.browsermenu.field',
setUp=lambda test:cleanup.setUp(),
tearDown=lambda test:cleanup.tearDown()),
))
More information about the Checkins
mailing list