[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/ComponentArchitecture/tests - testNextService.py:1.1
Jim Fulton
jim@zope.com
Wed, 3 Jul 2002 09:20:02 -0400
Update of /cvs-repository/Zope3/lib/python/Zope/App/ComponentArchitecture/tests
In directory cvs.zope.org:/tmp/cvs-serv4273
Added Files:
testNextService.py
Log Message:
Tests for placeful service-manager lookup functions in hooks.
=== Added File Zope3/lib/python/Zope/App/ComponentArchitecture/tests/testNextService.py ===
##############################################################################
#
# 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.0 (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.
#
##############################################################################
"""
$Id: testNextService.py,v 1.1 2002/07/03 13:20:02 jim Exp $
"""
from unittest import TestCase, TestSuite, main, makeSuite
from Interface import Interface
from Zope.ComponentArchitecture.Exceptions import ComponentLookupError
from Zope.ContextWrapper import Wrapper
from Zope.ComponentArchitecture.IServiceManagerContainer \
import IServiceManagerContainer
from Zope.ComponentArchitecture.IServiceManager import IServiceManager
class ServiceManager:
__implements__ = IServiceManager
class Folder:
__implements__ = IServiceManagerContainer
sm = None
def getServiceManager(self, default=None):
return self.sm
def hasServiceManager(self):
return self.sm
def setServiceManager(self, sm):
self.sm = sm
root = Folder()
f1 = Wrapper(Folder(), root)
sm1 = ServiceManager()
f1.setServiceManager(sm1)
f2 = Wrapper(Folder(), f1)
sm2 = ServiceManager()
f2.setServiceManager(sm2)
class Test(TestCase):
def test_getServiceManager(self):
from Zope.ComponentArchitecture.GlobalServiceManager \
import serviceManager
from Zope.App.ComponentArchitecture.hooks import getServiceManager_hook
self.assertEqual(getServiceManager_hook(root), serviceManager)
self.assertEqual(getServiceManager_hook(f1), sm1)
self.assertEqual(getServiceManager_hook(f2), sm2)
def test_getNextServiceManager(self):
from Zope.ComponentArchitecture.GlobalServiceManager \
import serviceManager
from Zope.App.ComponentArchitecture.hooks \
import getNextServiceManager_hook
self.assertRaises(ComponentLookupError,
getNextServiceManager_hook, root)
self.assertEqual(getNextServiceManager_hook(Wrapper(sm1, f1)),
serviceManager)
self.assertEqual(getNextServiceManager_hook(Wrapper(sm2, f2)), sm1)
def test_suite():
return TestSuite((
makeSuite(Test),
))
if __name__=='__main__':
main(defaultTest='test_suite')