예제 #1
0
 def test_nested(self):
     from zope.component import getGlobalSiteManager
     from zope.interface.registry import Components
     gsm = getGlobalSiteManager()
     gutil = _makeMyUtility('global', gsm)
     gsm.registerUtility(gutil, IMyUtility, 'myutil')
     sm1 = Components('sm1', bases=(gsm, ))
     sm1_1 = Components('sm1_1', bases=(sm1, ))
     util1 = _makeMyUtility('one', sm1)
     sm1.registerUtility(util1, IMyUtility, 'myutil')
     util1_1 = _makeMyUtility('one-one', sm1_1)
     sm1_1.registerUtility(util1_1, IMyUtility, 'myutil')
     myregistry = Components()
     custom_util = _makeMyUtility('my_custom_util', myregistry)
     myregistry.registerUtility(custom_util, IMyUtility, 'my_custom_util')
     sm1.__bases__ = (myregistry,) + sm1.__bases__
     # Both the ``myregistry`` and global utilities should be available:
     self.assertTrue(self._callFUT(sm1, IMyUtility, 'my_custom_util')
                                         is custom_util)
     self.assertTrue(self._callFUT(sm1, IMyUtility, 'myutil') is gutil)
예제 #2
0
 def test_nested(self):
     from zope.component import getGlobalSiteManager
     from zope.interface.registry import Components
     gsm = getGlobalSiteManager()
     gutil = _makeMyUtility('global', gsm)
     gsm.registerUtility(gutil, IMyUtility, 'myutil')
     sm1 = Components('sm1', bases=(gsm, ))
     sm1_1 = Components('sm1_1', bases=(sm1, ))
     util1 = _makeMyUtility('one', sm1)
     sm1.registerUtility(util1, IMyUtility, 'myutil')
     util1_1 = _makeMyUtility('one-one', sm1_1)
     sm1_1.registerUtility(util1_1, IMyUtility, 'myutil')
     myregistry = Components()
     custom_util = _makeMyUtility('my_custom_util', myregistry)
     myregistry.registerUtility(custom_util, IMyUtility, 'my_custom_util')
     sm1.__bases__ = (myregistry, ) + sm1.__bases__
     # Both the ``myregistry`` and global utilities should be available:
     self.assertTrue(
         self._callFUT(sm1, IMyUtility, 'my_custom_util') is custom_util)
     self.assertTrue(self._callFUT(sm1, IMyUtility, 'myutil') is gutil)