[Checkins] SVN: z3c.language/trunk/src/z3c/language/ Cleanup and
improve error handling
Roger Ineichen
roger at projekt01.ch
Wed Aug 23 18:17:00 EDT 2006
Log message for revision 69742:
Cleanup and improve error handling
Changed:
U z3c.language/trunk/src/z3c/language/negotiator/app.py
U z3c.language/trunk/src/z3c/language/negotiator/browser/views.py
U z3c.language/trunk/src/z3c/language/negotiator/ftests.py
U z3c.language/trunk/src/z3c/language/negotiator/interfaces.py
U z3c.language/trunk/src/z3c/language/negotiator/tests.py
U z3c.language/trunk/src/z3c/language/session/__init__.py
U z3c.language/trunk/src/z3c/language/session/app.py
U z3c.language/trunk/src/z3c/language/session/browser/views.py
U z3c.language/trunk/src/z3c/language/session/interfaces.py
U z3c.language/trunk/src/z3c/language/switch/adapters.py
U z3c.language/trunk/src/z3c/language/switch/app.py
U z3c.language/trunk/src/z3c/language/switch/property.py
U z3c.language/trunk/src/z3c/language/switch/testing.py
U z3c.language/trunk/src/z3c/language/switch/tests.py
U z3c.language/trunk/src/z3c/language/switch/vocabulary.py
-=-
Modified: z3c.language/trunk/src/z3c/language/negotiator/app.py
===================================================================
--- z3c.language/trunk/src/z3c/language/negotiator/app.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/negotiator/app.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -17,14 +17,14 @@
"""
__docformat__ = 'restructuredtext'
-from persistent import Persistent
-from zope.interface import implements
+import persistent
+import zope.interface
from zope.i18n.interfaces import IUserPreferredLanguages
from zope.i18n.interfaces import INegotiator
from zope.i18n.negotiator import negotiator
-from zope.app.container.contained import Contained
+from zope.app.container import contained
from z3c.language.session.interfaces import ILanguageSession
@@ -33,7 +33,7 @@
-class Negotiator(Persistent, Contained):
+class Negotiator(persistent.Persistent, contained.Contained):
"""Loacal negotiator implementation.
The negotiator let you change the policy, which is a alias
@@ -57,7 +57,7 @@
"""
- implements(INegotiator, INegotiatorManager)
+ zope.interface.implements(INegotiator, INegotiatorManager)
def __init__(self):
self._policy = 'session --> browser --> server'
Modified: z3c.language/trunk/src/z3c/language/negotiator/browser/views.py
===================================================================
--- z3c.language/trunk/src/z3c/language/negotiator/browser/views.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/negotiator/browser/views.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -38,7 +38,7 @@
try:
offeredLanguages = negotiator.offeredLanguages
- except:
+ except AttributeError:
# we don't have a Negotiator instance
# we got the global zope.i18n Negotiator
offeredLanguages = []
@@ -53,7 +53,7 @@
try:
offeredLanguages = negotiator.offeredLanguages
return True
- except:
+ except AttributeError:
# we don't have a Negotiator instance
# we got the global zope.i18n Negotiator
return False
Modified: z3c.language/trunk/src/z3c/language/negotiator/ftests.py
===================================================================
--- z3c.language/trunk/src/z3c/language/negotiator/ftests.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/negotiator/ftests.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -19,14 +19,12 @@
import unittest
from zope.testing import doctest
-from zope.app.testing.functional import FunctionalDocFileSuite
-from zope.app.testing.functional import BrowserTestCase
+from zope.app.testing import functional
-
def test_suite():
return unittest.TestSuite((
- FunctionalDocFileSuite(
+ functional.FunctionalDocFileSuite(
"README.txt",
optionflags=doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE),
))
Modified: z3c.language/trunk/src/z3c/language/negotiator/interfaces.py
===================================================================
--- z3c.language/trunk/src/z3c/language/negotiator/interfaces.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/negotiator/interfaces.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -17,12 +17,10 @@
"""
__docformat__ = 'restructuredtext'
-from zope.interface import Interface
-
+import zope.interface
+import zope.schema
from zope.schema.interfaces import IVocabularyTokenized
-from zope.schema import TextLine
-from zope.schema import List
-from zope.schema import Choice
+
from zope.i18n.interfaces import INegotiator
from zope.app.session.interfaces import ISession
@@ -34,38 +32,37 @@
'session --> browser --> server', 'session --> server']
-
-class INegotiatorManager(Interface):
+class INegotiatorManager(zope.interface.Interface):
"""Local negotiator utility manager interface."""
- policy = Choice(
+ policy = zope.schema.Choice(
title=_("Language lookup policy"),
description=_("Defines how the language lookup is working."),
values=language_policies,
default='session --> browser --> server',
required=True)
- serverLanguage = TextLine(
+ serverLanguage = zope.schema.TextLine(
title=_(u"Server language"),
description=_(u"The language used for server policy."),
default=u"en",
required=True,
)
- sessionLanguages = List(
+ sessionLanguages = zope.schema.List(
title=_(u"Session languages"),
description=_(u"A list of available languages in session policy."),
- value_type = TextLine(title=_(u"A i18n language."),
+ value_type = zope.schema.TextLine(title=_(u"A i18n language."),
description=_(u"""A i18n language definition string used in
sessions.""")),
required=False,
)
- offeredLanguages = List(
+ offeredLanguages = zope.schema.List(
title=_(u"Offered languages"),
description=_(u"""A list of offered languages in the skin for the
user to select."""),
- value_type = TextLine(title=_(u"A i18n language."),
+ value_type = zope.schema.TextLine(title=_(u"A i18n language."),
description=_(u"""
A i18n language definition string offerd in the skin for the
user to select.""")),
@@ -73,18 +70,14 @@
)
+class IOfferedLanguages(zope.interface.Interface):
-class IOfferedLanguages(Interface):
-
-
def getOfferedLanguages():
"""View for listing available (offered) languages."""
-
def hasOfferedLanguages():
"""View for to check if we have i18n session support."""
-
class IAvailableTranslationDomainLanguagesVocabulary(IVocabularyTokenized):
"""Available languages."""
Modified: z3c.language/trunk/src/z3c/language/negotiator/tests.py
===================================================================
--- z3c.language/trunk/src/z3c/language/negotiator/tests.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/negotiator/tests.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -15,25 +15,24 @@
"""
$Id$
"""
-
__docformat__ = 'restructuredtext'
import unittest
+import zope.interface
+import zope.component
from zope.app.testing import ztapi
from zope.i18n.interfaces import IUserPreferredLanguages
-from zope.component.testing import PlacelessSetup
-from zope.interface import implements
from z3c.language.session.interfaces import ILanguageSession
from z3c.language.negotiator.app import Negotiator
-
class TestLanguageSession(object):
- implements(ILanguageSession)
+ zope.interface.implements(ILanguageSession)
+ zope.component.adapts(IUserPreferredLanguages)
def __init__(self, request):
pass
@@ -43,7 +42,7 @@
class Env(object):
- implements(IUserPreferredLanguages)
+ zope.interface.implements(IUserPreferredLanguages)
def __init__(self, langs=()):
self.langs = langs
@@ -52,64 +51,64 @@
return self.langs
-class NegotiatorTest(PlacelessSetup, unittest.TestCase):
+class NegotiatorTest(zope.component.testing.PlacelessSetup,
+ unittest.TestCase):
def setUp(self):
super(NegotiatorTest, self).setUp()
self.negotiator = Negotiator()
- ztapi.provideAdapter(IUserPreferredLanguages, ILanguageSession,
- TestLanguageSession)
+ zope.component.provideAdapter(TestLanguageSession)
-# def test__getLanguagePolicy(self):
-# default = 'session --> browser --> server'
-# self.assertEqual(self.negotiator._getLanguagePolicy(), default)
-#
-# def test__setLanguagePolicy(self):
-# self.negotiator.policy = 'server'
-# self.assertEqual(self.negotiator.policy, 'server')
-# self.assertRaises(
-# ValueError, self.negotiator._setLanguagePolicy, 'undefined')
-#
-# def test_policy(self):
-# default = 'session --> browser --> server'
-# self.assertEqual(self.negotiator.policy, default)
-# self.negotiator.policy = 'server'
-# self.assertEqual(self.negotiator.policy, 'server')
-#
-# def test_serverLanguage(self):
-# self.assertEqual(self.negotiator.serverLanguage, None)
-# self.negotiator.serverLanguage = 'de'
-# self.assertEqual(self.negotiator.serverLanguage, 'de')
-#
-# def test_sessionLanguages(self):
-# self.assertEqual(self.negotiator.sessionLanguages, [])
-# self.negotiator.sessionLanguages = ['de', 'en']
-# self.assertEqual(self.negotiator.sessionLanguages, ['de', 'en'])
-#
-# def test_offeredLanguages(self):
-# self.assertEqual(self.negotiator.offeredLanguages, [])
-# self.negotiator.offeredLanguages = ['de', 'en']
-# self.assertEqual(self.negotiator.offeredLanguages, ['de', 'en'])
+ def test__getLanguagePolicy(self):
+ default = 'session --> browser --> server'
+ self.assertEqual(self.negotiator._getLanguagePolicy(), default)
-# def test_getLanguages(self):
-# # first set the default policy to 'browser'
-# self.negotiator.policy = 'browser'
-# self.assertEqual(self.negotiator.policy, 'browser')
-#
-# _cases = (
-# (('en','de'), ('en','de','fr'), 'en'),
-# (('en'), ('it','de','fr'), None),
-# (('pt-br','de'), ('pt_BR','de','fr'), 'pt_BR'),
-# (('pt-br','en'), ('pt', 'en', 'fr'), 'pt'),
-# (('pt-br','en-us', 'de'), ('de', 'en', 'fr'), 'en'),
-# )
-#
-# for user_pref_langs, obj_langs, expected in _cases:
-# env = Env(user_pref_langs)
-# self.assertEqual(self.negotiator.getLanguage(obj_langs, env),
-# expected)
+ def test__setLanguagePolicy(self):
+ self.negotiator.policy = 'server'
+ self.assertEqual(self.negotiator.policy, 'server')
+ self.assertRaises(
+ ValueError, self.negotiator._setLanguagePolicy, 'undefined')
+ def test_policy(self):
+ default = 'session --> browser --> server'
+ self.assertEqual(self.negotiator.policy, default)
+ self.negotiator.policy = 'server'
+ self.assertEqual(self.negotiator.policy, 'server')
+ def test_serverLanguage(self):
+ self.assertEqual(self.negotiator.serverLanguage, None)
+ self.negotiator.serverLanguage = 'de'
+ self.assertEqual(self.negotiator.serverLanguage, 'de')
+
+ def test_sessionLanguages(self):
+ self.assertEqual(self.negotiator.sessionLanguages, [])
+ self.negotiator.sessionLanguages = ['de', 'en']
+ self.assertEqual(self.negotiator.sessionLanguages, ['de', 'en'])
+
+ def test_offeredLanguages(self):
+ self.assertEqual(self.negotiator.offeredLanguages, [])
+ self.negotiator.offeredLanguages = ['de', 'en']
+ self.assertEqual(self.negotiator.offeredLanguages, ['de', 'en'])
+
+ def test_getLanguages(self):
+ # first set the default policy to 'browser'
+ self.negotiator.policy = 'browser'
+ self.assertEqual(self.negotiator.policy, 'browser')
+
+ _cases = (
+ (('en','de'), ('en','de','fr'), 'en'),
+ (('en'), ('it','de','fr'), None),
+ (('pt-br','de'), ('pt_BR','de','fr'), 'pt_BR'),
+ (('pt-br','en'), ('pt', 'en', 'fr'), 'pt'),
+ (('pt-br','en-us', 'de'), ('de', 'en', 'fr'), 'en'),
+ )
+
+ for user_pref_langs, obj_langs, expected in _cases:
+ env = Env(user_pref_langs)
+ self.assertEqual(self.negotiator.getLanguage(obj_langs, env),
+ expected)
+
+
def test_suite():
return unittest.TestSuite((
unittest.makeSuite(NegotiatorTest),
Modified: z3c.language/trunk/src/z3c/language/session/__init__.py
===================================================================
--- z3c.language/trunk/src/z3c/language/session/__init__.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/session/__init__.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -15,7 +15,6 @@
"""
$Id$
"""
-
__docformat__ = 'restructuredtext'
from z3c.language.session.interfaces import *
Modified: z3c.language/trunk/src/z3c/language/session/app.py
===================================================================
--- z3c.language/trunk/src/z3c/language/session/app.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/session/app.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -17,23 +17,9 @@
"""
__docformat__ = 'restructuredtext'
-from persistent import Persistent
-from zope.interface import implements
+import zope.interface
-from zope.component import ComponentLookupError
-
-from zope.i18n.interfaces import IUserPreferredLanguages
-from zope.i18n.negotiator import negotiator
-
-from zope.app.zapi import getUtility
-from zope.app.container.contained import Contained
-
from zope.app.session.session import Session
-from zope.app.session.interfaces import ISession
-from zope.app.session.interfaces import IClientId
-from zope.app.session.interfaces import ISessionDataContainer
-from zope.app.session.session import SessionData
-from zope.app.session.session import SessionPkgData
from z3c.language.session import ILanguageSession
from z3c.language.session import IGetLanguage
@@ -41,7 +27,6 @@
from z3c.language.session import sessionPkgDataId
-
class LanguageSession(Session):
"""Handles i18n language via server session.
@@ -74,9 +59,8 @@
>>> tests.tearDown()
"""
+ zope.interface.implements(ILanguageSession, IGetLanguage, ISetLanguage)
- implements(ILanguageSession, IGetLanguage, ISetLanguage)
-
def __init__(self, request):
super(LanguageSession, self).__init__(request)
Modified: z3c.language/trunk/src/z3c/language/session/browser/views.py
===================================================================
--- z3c.language/trunk/src/z3c/language/session/browser/views.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/session/browser/views.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -17,7 +17,8 @@
"""
__docformat__ = 'restructuredtext'
-from zope.interface import implements
+import zope.interface
+import zope.component
from zope.publisher.browser import BrowserView
@@ -27,15 +28,12 @@
from z3c.language.session import ISetLanguage
-
-
class LanguageSessionView(BrowserView):
- implements(IHasLanguage, IGetLanguage, ISetLanguage)
+ zope.interface.implements(IHasLanguage, IGetLanguage, ISetLanguage)
def hasLanguage(self):
"""View for to check if a session has a i18n language value."""
-
try:
session = ILanguageSession(self.request)
lang = session.getLanguage()
@@ -43,22 +41,19 @@
return True
else:
return False
- except:
+ except zope.component.ComponentLookupError:
return False
-
def getLanguage(self):
"""View for to check if a session has a i18n language value."""
-
_fallback = 'en'
try:
session = ILanguageSession(self.request)
return session.getLanguage()
- except:
+ except AttributeError:
return _fallback
-
def setLanguage(self):
"""Set the given language in the request to the session.
@@ -70,7 +65,6 @@
Or send the request to the view '@@setLanguage'. There has to be a
variable 'language' and 'nextURL' in the request like
"""
-
nextURL = '.'
if "language" in self.request:
Modified: z3c.language/trunk/src/z3c/language/session/interfaces.py
===================================================================
--- z3c.language/trunk/src/z3c/language/session/interfaces.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/session/interfaces.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -17,8 +17,7 @@
"""
__docformat__ = 'restructuredtext'
-from zope.interface import Interface
-
+import zope.interface
from zope.schema.interfaces import IVocabularyTokenized
from zope.app.session.interfaces import ISession
@@ -34,7 +33,7 @@
-class IHasLanguage(Interface):
+class IHasLanguage(zope.interface.Interface):
"""Has language API"""
def hasLanguage():
@@ -42,7 +41,7 @@
-class IGetLanguage(Interface):
+class IGetLanguage(zope.interface.Interface):
"""Get language API"""
def getLanguage():
@@ -50,7 +49,7 @@
-class ISetLanguage(Interface):
+class ISetLanguage(zope.interface.Interface):
"""Set language API"""
def setLanguage():
Modified: z3c.language/trunk/src/z3c/language/switch/adapters.py
===================================================================
--- z3c.language/trunk/src/z3c/language/switch/adapters.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/switch/adapters.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -17,23 +17,21 @@
"""
__docformat__ = 'restructuredtext'
-from zope.interface import implements
+import zope.interface
from z3c.language.switch import II18n
from z3c.language.switch import II18nLanguageSwitch
-
class I18nLanguageSwitch(object):
"""Mixing class for switch a language on a object.
Use the method _getI18n for set the i18n object.
"""
+ zope.interface.implements(II18nLanguageSwitch)
_language = 'en'
- implements(II18nLanguageSwitch)
-
def __init__(self, context):
self.context = context
self.i18n = self._getI18n()
@@ -57,14 +55,12 @@
self._language = language
-
class I18nAdapter(object):
"""Mixing class for i18n adapters which must provide the adapted object
under the attribute 'self.i18n'.
"""
+ zope.interface.implements(II18n)
- implements(II18n)
-
# z3c.langauge.switch.IReadI18n
def getAvailableLanguages(self):
"""See `z3c.langauge.switch.interfaces.IReadI18n`"""
Modified: z3c.language/trunk/src/z3c/language/switch/app.py
===================================================================
--- z3c.language/trunk/src/z3c/language/switch/app.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/switch/app.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -17,33 +17,27 @@
"""
__docformat__ = 'restructuredtext'
-from persistent import Persistent
-
-from zope.event import notify
+import persistent
+import zope.interface
+import zope.component
+import zope.event
+import zope.lifecycleevent
from zope.i18n.interfaces import INegotiator
-from zope.interface import implements
-from zope.lifecycleevent import ObjectCreatedEvent
-from zope.lifecycleevent import ObjectModifiedEvent
+from zope.security.interfaces import NoInteraction
from zope.security.management import getInteraction
-from zope.app import zapi
-
from z3c.language.switch import II18n
-
def getRequest():
try:
interaction = getInteraction()
request = interaction.participations[0]
- except:
+ except NoInteraction:
request = None
- return request
-
-
-class I18n(Persistent, object):
+class I18n(persistent.Persistent, object):
"""Mixin implementation of II18n.
Set a factory class in our implementation. The _create method will initalize
@@ -52,67 +46,68 @@
You can use this class as mixin for i18n implementations:
- >>> from z3c.language.switch.app import I18n
- >>> class Person(object):
- ... def __init__(self, firstname, lastname):
- ... self.firstname = firstname
- ... self.lastname = lastname
+ >>> from z3c.language.switch.app import I18n
+ >>> class Person(object):
+ ... def __init__(self, firstname, lastname):
+ ... self.firstname = firstname
+ ... self.lastname = lastname
- >>> class I18nPerson(I18n):
- ... _defaultLanguage = 'en'
- ... _factory = Person
+ >>> class I18nPerson(I18n):
+ ... _defaultLanguage = 'en'
+ ... _factory = Person
Now you can initialize the default translation:
- >>> i18n = I18nPerson(firstname='Bob', lastname='Miller')
- >>> i18n.getDefaultLanguage()
- 'en'
- >>> i18n.getPreferedLanguage()
- 'en'
+ >>> i18n = I18nPerson(firstname='Bob', lastname='Miller')
+ >>> i18n.getDefaultLanguage()
+ 'en'
+ >>> i18n.getPreferedLanguage()
+ 'en'
You can access the attributes of the default translation:
- >>> i18n.getAttribute('firstname')
- 'Bob'
- >>> i18n.getAttribute('lastname')
- 'Miller'
-
+ >>> i18n.getAttribute('firstname')
+ 'Bob'
+ >>> i18n.getAttribute('lastname')
+ 'Miller'
+
That is the same as accessing the attribute using a language parameter:
- >>> i18n.getAttribute('firstname', 'en')
- 'Bob'
+ >>> i18n.getAttribute('firstname', 'en')
+ 'Bob'
- If an attribute is not available a AttributeError is raised. The queryAttribute
- method offers a save way for unsecure access:
+ If an attribute is not available a AttributeError is raised. The
+ queryAttribute method offers a save way for unsecure access:
- >>> i18n.getAttribute('name')
- Traceback (most recent call last):
- ...
- AttributeError: 'Person' object has no attribute 'name'
+ >>> i18n.getAttribute('name')
+ Traceback (most recent call last):
+ ...
+ AttributeError: 'Person' object has no attribute 'name'
- >>> i18n.queryAttribute('name') is None
- True
+ >>> i18n.queryAttribute('name') is None
+ True
You can set the attributes an other time:
- >>> i18n.setAttributes('en', firstname='Foo', lastname='Bar')
- >>> i18n.getAttribute('firstname')
- 'Foo'
- >>> i18n.getAttribute('lastname')
- 'Bar'
+ >>> i18n.setAttributes('en', firstname='Foo', lastname='Bar')
+ >>> i18n.getAttribute('firstname')
+ 'Foo'
+ >>> i18n.getAttribute('lastname')
+ 'Bar'
You can initialize the default translation using a specific language:
- >>> i18n = I18nPerson(defaultLanguage='fr', firstname='Robert', lastname='Moulin')
- >>> i18n.getDefaultLanguage()
- 'fr'
- >>> i18n.getPreferedLanguage()
- 'fr'
+ >>> i18n = I18nPerson(defaultLanguage='fr', firstname='Robert',
+ ... lastname='Moulin')
+ >>> i18n.getDefaultLanguage()
+ 'fr'
+ >>> i18n.getPreferedLanguage()
+ 'fr'
"""
_data = None
- # sublclasses should overwrite this attrubute.
+ # sublclasses should overwrite this attributes.
_defaultLanguage = None
_factory = None
@@ -120,7 +115,7 @@
def _defaultArgs(self):
return None
- implements(II18n)
+ zope.interface.implements(II18n)
def __init__(self, defaultLanguage=None, *args, **kws):
@@ -170,8 +165,9 @@
request = getRequest()
negotiator = None
try:
- negotiator = zapi.getUtility(INegotiator, name='', context=self)
- except:
+ negotiator = zope.component.queryUtility(INegotiator,
+ name='', context=self)
+ except zope.component.ComponentLookupError:
# can happens during tests without a site and sitemanager
pass
if request and negotiator:
@@ -198,7 +194,7 @@
def queryAttribute(self, name, language=None, default=None):
try:
return self.getAttribute(name, language)
- except:
+ except AttributeError:
return default
# z3c.langauge.switch.IReadI18n
@@ -217,7 +213,7 @@
args = self._defaultArgs()
self._get_or_add(language, *args, **kw)
- notify(ObjectModifiedEvent(self))
+ zope.event.notify(zope.lifecycleevent.ObjectModifiedEvent(self))
def removeLanguage(self, language):
"""See `z3c.langauge.switch.interfaces.IWriteI18n`"""
@@ -230,7 +226,7 @@
else:
del data[language]
self._p_changed = True
- notify(ObjectModifiedEvent(self))
+ zope.event.notify(zope.lifecycleevent.ObjectModifiedEvent(self))
def setAttributes(self, language, **kws):
# preconditions
@@ -249,14 +245,14 @@
setattr(obj, key, kws[key])
else:
self._p_changed = True
- notify(ObjectModifiedEvent(self))
+ zope.event.notify(zope.lifecycleevent.ObjectModifiedEvent(self))
# private helper methods
def _create(self, *args, **kw):
"""Create a new subobject of the type document."""
factory = self._factory
obj = factory(*args, **kw)
- notify(ObjectCreatedEvent(obj))
+ zope.event.notify(zope.lifecycleevent.ObjectCreatedEvent(obj))
return obj
def _get(self, language):
Modified: z3c.language/trunk/src/z3c/language/switch/property.py
===================================================================
--- z3c.language/trunk/src/z3c/language/switch/property.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/switch/property.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -20,7 +20,6 @@
_marker = object()
-
class I18nFieldProperty(object):
"""Computed attributes based on schema fields and i18n implementation.
@@ -64,7 +63,6 @@
return getattr(self.__field, name)
-
class I18nLanguageSwitchFieldProperty(object):
"""Computed attributes based on schema fields and i18n language switch implementation.
Modified: z3c.language/trunk/src/z3c/language/switch/testing.py
===================================================================
--- z3c.language/trunk/src/z3c/language/switch/testing.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/switch/testing.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -38,7 +38,6 @@
return list
-
################################################################################
#
# Public Test implementations
@@ -49,12 +48,10 @@
"""IContentObject interface."""
-
class II18nContentObject(Interface):
"""II18nContentObject interface."""
-
class ContentObject(object):
"""Content type."""
@@ -78,7 +75,6 @@
title = property(getTitle, setTitle)
-
class I18nContentObject(object):
"""i18n content type."""
@@ -174,7 +170,6 @@
return language
-
class I18nContentObjectLanguageSwitch(object):
"""Language switch for I18nContentObject."""
@@ -207,7 +202,6 @@
title = property(getTitle, setTitle)
-
################################################################################
#
# Public Base Tests
@@ -270,7 +264,6 @@
self.failUnless(verifyClass(II18n, class_))
-
class BaseTestI18nLanguageSwitch(InterfaceBaseTest):
def getTestClass(self):
Modified: z3c.language/trunk/src/z3c/language/switch/tests.py
===================================================================
--- z3c.language/trunk/src/z3c/language/switch/tests.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/switch/tests.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -23,7 +23,6 @@
from zope.testing import doctestunit
-
def test_suite():
return unittest.TestSuite((
doctestunit.DocFileSuite('README.txt'),
Modified: z3c.language/trunk/src/z3c/language/switch/vocabulary.py
===================================================================
--- z3c.language/trunk/src/z3c/language/switch/vocabulary.py 2006-08-23 21:55:10 UTC (rev 69741)
+++ z3c.language/trunk/src/z3c/language/switch/vocabulary.py 2006-08-23 22:17:00 UTC (rev 69742)
@@ -17,8 +17,7 @@
"""
__docformat__ = 'restructuredtext'
-from zope.interface.declarations import implements
-from zope.interface import classProvides
+import zope.interface
from zope.schema.interfaces import IVocabularyFactory
from zope.schema.vocabulary import SimpleTerm
@@ -27,13 +26,12 @@
from z3c.language.switch import IAvailableLanguagesVocabulary
-
class AvailableLanguagesVocabulary(SimpleVocabulary):
"""A vocabular of available languages from the context object."""
- implements(IAvailableLanguagesVocabulary)
+ zope.interface.implements(IAvailableLanguagesVocabulary)
- classProvides(IVocabularyFactory)
+ zope.interface.classProvides(IVocabularyFactory)
def __init__(self, context):
terms = []
@@ -42,7 +40,7 @@
# but just after creation of the object
try:
languages = context.getAvailableLanguages()
- except:
+ except AttrbiteError:
languages = []
for lang in languages:
More information about the Checkins
mailing list