Ejemplo n.º 1
0
    def test_removeIntIdSubscriber(self):
        from zope.app.intid import removeIntIdSubscriber
        from zope.app.container.contained import ObjectRemovedEvent
        from zope.app.intid.interfaces import IIntIdRemovedEvent
        parent_folder = self.root['folder1']['folder1_1']
        folder = self.root['folder1']['folder1_1']['folder1_1_1']
        id = self.utility.register(folder)
        id1 = self.utility1.register(folder)
        self.assertEquals(self.utility.getObject(id), folder)
        self.assertEquals(self.utility1.getObject(id1), folder)
        setSite(self.folder1_1)

        events = []
        ztapi.subscribe([IIntIdRemovedEvent], None, events.append)

        # This should unregister the object in all utilities, not just the
        # nearest one.
        removeIntIdSubscriber(folder, ObjectRemovedEvent(parent_folder))

        self.assertRaises(KeyError, self.utility.getObject, id)
        self.assertRaises(KeyError, self.utility1.getObject, id1)

        self.assertEquals(len(events), 1)
        self.assertEquals(events[0].object, folder)
        self.assertEquals(events[0].original_event.object, parent_folder)
Ejemplo n.º 2
0
    def testSiteEvents(self):
        from zope.app.publication.interfaces import IBeforeTraverseEvent
        from zope.app.publication.interfaces import IEndRequestEvent

        set = []
        clear = []
        ztapi.subscribe([IBeforeTraverseEvent], None, set.append)
        ztapi.subscribe([IEndRequestEvent], None, clear.append)

        ob = object()

        # This should fire the BeforeTraverseEvent
        self.publication.callTraversalHooks(self.request, ob)

        self.assertEqual(len(set), 1)
        self.assertEqual(len(clear), 0)
        self.assertEqual(set[0].object, ob)

        ob2 = object()

        # This should fire the EndRequestEvent
        self.publication.endRequest(self.request, ob2)

        self.assertEqual(len(set), 1)
        self.assertEqual(len(clear), 1)
        self.assertEqual(clear[0].object, ob2)
Ejemplo n.º 3
0
    def testSiteEvents(self):
        from zope.app.publication.interfaces import IBeforeTraverseEvent
        from zope.app.publication.interfaces import IEndRequestEvent

        set = []
        clear = []
        ztapi.subscribe([IBeforeTraverseEvent], None, set.append)
        ztapi.subscribe([IEndRequestEvent], None, clear.append)

        ob = object()

        # This should fire the BeforeTraverseEvent
        self.publication.callTraversalHooks(self.request, ob)

        self.assertEqual(len(set), 1)
        self.assertEqual(len(clear), 0)
        self.assertEqual(set[0].object, ob)

        ob2 = object()

        # This should fire the EndRequestEvent
        self.publication.endRequest(self.request, ob2)

        self.assertEqual(len(set), 1)
        self.assertEqual(len(clear), 1)
        self.assertEqual(clear[0].object, ob2)
Ejemplo n.º 4
0
    def register(self):
        """Start counting queries.

        Be sure to call unregister when finished with the collector.

        After each web request the count and queries attributes are updated.
        """
        ztapi.subscribe((IEndRequestEvent, ), None, self)
        self._active = True
Ejemplo n.º 5
0
    def register(self):
        """Start counting queries.

        Be sure to call unregister when finished with the collector.

        After each web request the count and queries attributes are updated.
        """
        ztapi.subscribe((IEndRequestEvent, ), None, self)
        self._active = True
Ejemplo n.º 6
0
    def testNotify(self):
        events = []

        def record(*args):
            events.append(args)

        ztapi.subscribe([IContained, IObjectRemovedEvent], None, record)

        item = Contained()
        event = ObjectRemovedEvent(item)
        objectevent.objectEventNotify(event)
        self.assertEqual([(item, event)], events)
Ejemplo n.º 7
0
def coreSetUp( test=None ):
    placelesssetup.setUp()

    ###########################
    # order workflow
    ztapi.provideAdapter( IOrder,
                          interfaces.IWorkflowState,
                          oworkflow.FinanceState,
                          'order.finance')

    ztapi.provideAdapter( IOrder,
                          interfaces.IWorkflowState,
                          oworkflow.FulfillmentState,
                          'order.fulfillment')

    ztapi.provideAdapter( IOrder,
                          interfaces.IWorkflowInfo,
                          oworkflow.FinanceInfo,
                          'order.finance')

    ztapi.provideAdapter( IOrder,
                     interfaces.IWorkflowInfo,
                     oworkflow.FulfillmentInfo,
                    'order.fulfillment')

    ztapi.provideAdapter(annotation_interfaces.IAttributeAnnotatable,
                         annotation_interfaces.IAnnotations,
                         attribute.AttributeAnnotations)

    ztapi.provideUtility(interfaces.IWorkflow,
                         oworkflow.FulfillmentWorkflow(),
                        'order.fulfillment')

    ztapi.provideUtility(interfaces.IWorkflow,
                        oworkflow.FinanceWorkflow(),
                        'order.finance')

    ztapi.provideUtility(interfaces.IWorkflowVersions,
                         store.StoreVersions())

    ztapi.provideUtility( IOrderManager, order.OrderManager() )

    ztapi.provideAdapter( IOrder, IOrderWorkflowLog, order.OrderWorkflowLog )

    ztapi.subscribe( (IOrder, interfaces.IWorkflowTransitionEvent),
                       None,
                       order.recordOrderWorkflow )
Ejemplo n.º 8
0
    def testVeto(self):
        ztapi.subscribe([IObjectEvent], None, objectevent.objectEventNotify)
        container = SampleContainer()
        item = Contained()

        # This will fire an event.
        container['Fred'] = item

        class Veto(Exception):
            pass
        
        def callback(item, event):
            self.callbackTriggered = True
            self.assertEqual(item, event.object)
            raise Veto

        ztapi.subscribe([IContained, IObjectRemovedEvent], None, callback)

        # del container['Fred'] will fire an ObjectRemovedEvent event.
        self.assertRaises(Veto, container.__delitem__, 'Fred')
Ejemplo n.º 9
0
    def test_addIntIdSubscriber(self):
        from zope.app.intid import addIntIdSubscriber
        from zope.app.container.contained import ObjectAddedEvent
        from zope.app.intid.interfaces import IIntIdAddedEvent
        parent_folder = self.root['folder1']['folder1_1']
        folder = self.root['folder1']['folder1_1']['folder1_1_1']
        setSite(self.folder1_1)

        events = []
        ztapi.subscribe([IIntIdAddedEvent], None, events.append)

        # This should register the object in all utilities, not just the
        # nearest one.
        addIntIdSubscriber(folder, ObjectAddedEvent(parent_folder))

        # Check that the folder got registered
        id = self.utility.getId(folder)
        id1 = self.utility1.getId(folder)

        self.assertEquals(len(events), 1)
        self.assertEquals(events[0].original_event.object, parent_folder)
        self.assertEquals(events[0].object, folder)
Ejemplo n.º 10
0
 def setUp(self):
     clearEvents()
     ztapi.subscribe([None], None, events.append)
     ztapi.subscribe([IObjectEvent], None, objectEventNotify)
Ejemplo n.º 11
0
 def __init__(self, object_type, event_type, callback):
     self.object_type = object_type
     self.event_type = event_type
     self.callback = callback
     self._active = True
     ztapi.subscribe((object_type, event_type), None, self)
Ejemplo n.º 12
0
def setUpRegistered():
    ztapi.subscribe((IComponentRegistration, IRegistrationEvent), None,
                     componentRegistrationEventNotify)
Ejemplo n.º 13
0
 def __init__(self, object_type, event_type, callback):
     self.object_type = object_type
     self.event_type = event_type
     self.callback = callback
     self._active = True
     ztapi.subscribe((object_type, event_type), None, self)