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)
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)