%PDF- %PDF-
Direktori : /lib/python3/dist-packages/zope/component/tests/ |
Current File : //lib/python3/dist-packages/zope/component/tests/examples.py |
############################################################################## # # Copyright (c) 2001, 2002, 2009 Zope Foundation 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. # ############################################################################## """Examples supporting Sphinx doctest snippets. """ import sys from zope.interface import Interface from zope.interface import implementer from zope.interface.interfaces import IInterface from zope.component._declaration import adapter from zope.component.testfiles.views import IC def write(x): sys.stdout.write('%s\n' % x) class ITestType(IInterface): pass class I1(Interface): pass class I2(Interface): pass class I3(Interface): pass class I4(Interface): pass class IGI(Interface): pass class IQI(Interface): pass class ISI(Interface): pass class ISII(Interface): pass def noop(*args): pass class U(object): def __init__(self, name): self.__name__ = name def __repr__(self): return "%s(%s)" % (self.__class__.__name__, self.__name__) @implementer(I1) class U1(U): pass @implementer(I1, I2) class U12(U): pass @adapter(I1) def handle1(x): write('handle1 %s' % x) def handle2(*objects): write( 'handle2 ' + repr(objects)) @adapter(I1) def handle3(x): write( 'handle3 %s' % x) @adapter(I1) def handle4(x): write( 'handle4 %s' % x) class GlobalRegistry: pass from zope.component.globalregistry import GlobalAdapterRegistry base = GlobalAdapterRegistry(GlobalRegistry, 'adapters') GlobalRegistry.adapters = base def clear_base(): base.__init__(GlobalRegistry, 'adapters') @implementer(I1) class Ob(object): def __repr__(self): return '<instance Ob>' ob = Ob() @implementer(I2) class Ob2(object): def __repr__(self): return '<instance Ob2>' @implementer(IC) class Ob3(object): pass @implementer(I2) class Comp(object): def __init__(self, context): self.context = context comp = Comp(1) @implementer(I3) class Comp2(object): def __init__(self, context): self.context = context class ConformsToIComponentLookup(object): """Allow a dummy sitemanager to conform/adapt to `IComponentLookup`.""" def __init__(self, sitemanager): self.sitemanager = sitemanager def __conform__(self, interface): """This method is specified by the adapter PEP to do the adaptation.""" from zope.component.interfaces import IComponentLookup if interface is IComponentLookup: return self.sitemanager def clearZCML(test=None): from zope.configuration.xmlconfig import XMLConfig import zope.component from zope.component.testing import setUp from zope.component.testing import tearDown tearDown() setUp() XMLConfig('meta.zcml', zope.component)()