Creating and Rendering Menus ============================ We first set up a test and working environment: >>> from zope.app import zapi >>> from zope.app.testing import ztapi >>> from zope.app.component import site, interfaces >>> from zope.app.folder import Folder >>> from cybertools.menu import Menu >>> from cybertools.interfaces import IMenu Set up a site: >>> f1 = Folder() >>> sm = site.LocalSiteManager(f1) >>> f1.setSiteManager(sm) >>> default = sm['default'] Create a menu and register it: >>> m1 = Menu('m1') >>> default['m1'] = m1 >>> reg = site.UtilityRegistration('main', IMenu, m1) >>> default.registrationManager.addRegistration(reg) 'UtilityRegistration' >>> reg.status = interfaces.registration.ActiveStatus >>> zapi.getUtility(IMenu, 'main', context=f1) Menu('m1') >>> list(zapi.getUtilitiesFor(IMenu, f1)) [('main', Menu('m1'))]