applySkin(request, skin)
Change the presentation skin for this request.
>>> import pprint >>> from zope.interface import Interface >>> class SkinA(Interface): pass >>> directlyProvides(SkinA, IBrowserSkinType) >>> class SkinB(Interface): pass >>> directlyProvides(SkinB, IBrowserSkinType) >>> class IRequest(Interface): pass
>>> class Request(object): ... implements(IRequest)
>>> req = Request()
>>> applySkin(req, SkinA) >>> pprint.pprint(list(providedBy(req).interfaces())) [<InterfaceClass zope.publisher.browser.SkinA>, <InterfaceClass zope.publisher.browser.IRequest>]
>>> applySkin(req, SkinB) >>> pprint.pprint(list(providedBy(req).interfaces())) [<InterfaceClass zope.publisher.browser.SkinB>, <InterfaceClass zope.publisher.browser.IRequest>]
Changing the skin on a request triggers the ISkinChanged event:
>>> import zope.component >>> from zope.publisher.interfaces.browser import ISkinChangedEvent >>> def receiveSkinEvent(event): ... print event.request >>> zope.component.provideHandler(receiveSkinEvent, (ISkinChangedEvent,)) >>> applySkin(req, SkinA) # doctest: +ELLIPSIS <zope.publisher.browser.Request object at 0x...>
Make sure our registrations go away again.
>>> from zope.testing.cleanup import cleanUp >>> cleanUp()