Example #1
0
 def test_targets_set_remove_and_add_with_registry(self, context, objectmap, config, registry):
     from adhocracy_core.testing import create_event_listener
     from adhocracy_core.interfaces import ISheetBackReferenceAdded
     from adhocracy_core.interfaces import ISheetBackReferenceRemoved
     source, target, target1 = create_dummy_resources(parent=context, count=3)
     self.call_fut(objectmap, source, {target}, SheetReference, registry)
     removed_listener = create_event_listener(config, ISheetBackReferenceRemoved)
     added_listener = create_event_listener(config, ISheetBackReferenceAdded)
     self.call_fut(objectmap, source, {target1}, SheetReference, registry)
     assert len(removed_listener) == 1
     assert len(added_listener) == 1
Example #2
0
 def test_targets_set_remove_and_add_with_registry(self, context, objectmap,
                                                   config, registry):
     from adhocracy_core.testing import create_event_listener
     from adhocracy_core.interfaces import ISheetBackReferenceAdded
     from adhocracy_core.interfaces import ISheetBackReferenceRemoved
     source, target, target1 = create_dummy_resources(parent=context,
                                                      count=3)
     self.call_fut(objectmap, source, {target}, SheetReference, registry)
     removed_listener = create_event_listener(config,
                                              ISheetBackReferenceRemoved)
     added_listener = create_event_listener(config,
                                            ISheetBackReferenceAdded)
     self.call_fut(objectmap, source, {target1}, SheetReference, registry)
     assert len(removed_listener) == 1
     assert len(added_listener) == 1
Example #3
0
 def test_create_following_and_send_version_added_event(
         self, config, registry, item):
     version_0 = self.make_one(registry, item)
     events = create_event_listener(config, IItemVersionNewVersionAdded)
     version_1 = self.make_one(registry, item, follows=[version_0])
     assert events[0].object == version_0
     assert events[0].new_version == version_1
Example #4
0
 def test_create_following_and_send_version_added_event(self, config,
                                                        registry, item):
     version_0 = self.make_one(registry, item)
     events = create_event_listener(config, IItemVersionNewVersionAdded)
     version_1 = self.make_one(registry, item, follows=[version_0])
     assert events[0].object == version_0
     assert events[0].new_version == version_1
Example #5
0
 def test_notify_new_resource_created_and_added_without_parent_but_is_IRootPool(
         self, resource_meta, config, pool):
     from adhocracy_core.resources.root import IRootPool
     events = create_event_listener(config, IResourceCreatedAndAdded)
     meta = resource_meta._replace(iresource=IRootPool, use_autonaming=True)
     self.make_one(meta)(parent=None)
     assert len(events) == 1
Example #6
0
 def test_notify_new_resource_created_and_added_without_parent_but_is_IRootPool(
     self, resource_meta, config, pool):
     from adhocracy_core.resources.root import IRootPool
     events = create_event_listener(config, IResourceCreatedAndAdded)
     meta = resource_meta._replace(iresource=IRootPool, use_autonaming=True)
     self.make_one(meta)(parent=None)
     assert len(events) == 1
Example #7
0
    def test_notify_new_resource_created_and_added_ignore_if_not_send_event(
            self, resource_meta, config, pool):
        events = create_event_listener(config, IResourceCreatedAndAdded)
        meta = resource_meta._replace(iresource=IResource, use_autonaming=True)
        user = testing.DummyResource()

        self.make_one(meta)(parent=pool, creator=user, send_event=False)

        assert len(events) == 0
Example #8
0
    def test_notify_new_resource_created_and_added_ignore_if_not_send_event(
            self, resource_meta, config, pool):
        events = create_event_listener(config, IResourceCreatedAndAdded)
        meta = resource_meta._replace(iresource=IResource, use_autonaming=True)
        user = testing.DummyResource()

        self.make_one(meta)(parent=pool, creator=user, send_event=False)

        assert len(events) == 0
Example #9
0
    def test_notify_new_resource_created_and_added(self, resource_meta, config, pool):
        events = create_event_listener(config, IResourceCreatedAndAdded)
        meta = resource_meta._replace(iresource=IResource, use_autonaming=True)
        user = testing.DummyResource()

        resource = self.make_one(meta)(parent=pool, creator=user)

        assert IResourceCreatedAndAdded.providedBy(events[0])
        assert events[0].object == resource
        assert events[0].parent == pool
Example #10
0
 def test_delete_sends_deleted_event(self, config, registry, context):
     from adhocracy_core.testing import create_event_listener
     from adhocracy_core.events import IResourceWillBeDeleted
     deleted_listener = create_event_listener(config, IResourceWillBeDeleted)
     inst = self._makeOne()
     inst['child'] = context
     inst.delete('child', registry)
     event = deleted_listener[0]
     assert event.parent == inst
     assert event.object == context
Example #11
0
 def test_sends_generated_event(self, request_, add_to, changelog, context,
                                config):
     from adhocracy_core.testing import create_event_listener
     from adhocracy_core.interfaces import IActivitiesGenerated
     changelog['/'] = changelog['']._replace(modified=True, resource=context)
     added_listener = create_event_listener(config,
                                            IActivitiesGenerated)
     self.call_fut(request_, None)
     event = added_listener[0]
     added_activity = add_to.call_args[0][0][0]
     assert event.activities == [added_activity]
Example #12
0
    def test_notify_resource_sheet_modified(self, inst, context, config):
        from adhocracy_core.interfaces import IResourceSheetModified
        from adhocracy_core.testing import create_event_listener
        events = create_event_listener(config, IResourceSheetModified)
        inst.set({'count': 2})

        assert IResourceSheetModified.providedBy(events[0])
        assert events[0].object == context
        assert events[0].registry == config.registry
        assert events[0].old_appstruct == {'count': 0}
        assert events[0].new_appstruct == {'count': 2}
Example #13
0
    def test_notify_new_resource_created_and_added(self, resource_meta, config,
                                                   pool):
        events = create_event_listener(config, IResourceCreatedAndAdded)
        meta = resource_meta._replace(iresource=IResource, use_autonaming=True)
        user = testing.DummyResource()

        resource = self.make_one(meta)(parent=pool, creator=user)

        assert IResourceCreatedAndAdded.providedBy(events[0])
        assert events[0].object == resource
        assert events[0].parent == pool
Example #14
0
    def test_notify_resource_sheet_modified(self, inst, context, config):
        from adhocracy_core.interfaces import IResourceSheetModified
        from adhocracy_core.testing import create_event_listener
        events = create_event_listener(config, IResourceSheetModified)
        inst.set({'count': 2})

        assert IResourceSheetModified.providedBy(events[0])
        assert events[0].object == context
        assert events[0].registry == config.registry
        assert events[0].old_appstruct == {'count': 0}
        assert events[0].new_appstruct == {'count': 2}
    def test_create_new_version(self, config, context):
        events = create_event_listener(config, IItemVersionNewVersionAdded)
        creator = self.make_one(config, context)

        version_0 = self.make_one(config, context)
        version_1 = self.make_one(config, context, follows=[version_0], creator=creator)

        assert len(events) == 1
        assert events[0].object == version_0
        assert events[0].new_version == version_1
        assert events[0].creator == creator
Example #16
0
    def test_send_events(self, context, mocker, config, registry, objectmap):
        from adhocracy_core.testing import create_event_listener
        from adhocracy_core.interfaces import ISheetBackReferenceRemoved
        added_listener = create_event_listener(config,
                                               ISheetBackReferenceRemoved)
        reference = mocker.Mock()
        self.call_fut(objectmap, [reference], registry)

        event = added_listener[0]
        assert event.object == reference.target
        assert event.isheet == reference.isheet
        assert event.reference == reference
Example #17
0
    def test_send_events(self, context, mocker, config, registry, objectmap):
        from adhocracy_core.testing import create_event_listener
        from adhocracy_core.interfaces import ISheetBackReferenceRemoved
        added_listener = create_event_listener(config,
                                               ISheetBackReferenceRemoved)
        reference = mocker.Mock()
        self.call_fut(objectmap, [reference], registry)

        event = added_listener[0]
        assert event.object == reference.target
        assert event.isheet == reference.isheet
        assert event.reference == reference
Example #18
0
 def test_remove_sends_deleted_event(self, config, registry, context,
                                     mocker):
     from adhocracy_core.testing import create_event_listener
     from adhocracy_core.events import IResourceWillBeDeleted
     deleted_listener = create_event_listener(config, IResourceWillBeDeleted)
     inst = self._makeOne()
     mocker.patch('adhocracy_core.resources.pool.find_graph')
     inst['child'] = context
     inst.remove('child', registry=registry)
     event = deleted_listener[0]
     assert event.parent == inst
     assert event.object == context
    def test_create_new_version_with_referencing_resources(self, config, context):
        events = create_event_listener(config, ISheetReferenceNewVersion)
        creator = self.make_one(config, context)

        version_0 = self.make_one(config, context)
        other_version_0 = self.make_one(config, context)
        context.__objectmap__.connect(other_version_0, version_0, SheetToSheet)
        self.make_one(config, context, follows=[version_0], creator=creator, is_batchmode=True)

        assert len(events) == 1
        assert events[0].creator == creator
        assert events[0].is_batchmode
Example #20
0
 def test_remove_sends_deleted_event(self, config, registry, context,
                                     mocker):
     from adhocracy_core.testing import create_event_listener
     from adhocracy_core.events import IResourceWillBeDeleted
     deleted_listener = create_event_listener(config,
                                              IResourceWillBeDeleted)
     inst = self._makeOne()
     mocker.patch('adhocracy_core.resources.pool.find_graph')
     inst['child'] = context
     inst.remove('child', registry=registry)
     event = deleted_listener[0]
     assert event.parent == inst
     assert event.object == context
Example #21
0
 def test_targets_set_add_with_registry(self, context, objectmap, config, registry):
     from adhocracy_core.testing import create_event_listener
     from adhocracy_core.interfaces import ISheetBackReferenceAdded
     from adhocracy_core.interfaces import ISheet
     source, target, target1 = create_dummy_resources(parent=context, count=3)
     added_listener = create_event_listener(config, ISheetBackReferenceAdded)
     self.call_fut(objectmap, source, {target}, SheetReference, registry)
     event = added_listener[0]
     assert event.object == target
     assert event.isheet == ISheet
     assert event.reference.source == source
     assert event.reference.target == target
     assert event.reference.isheet == ISheet
Example #22
0
    def test_create_new_version(self, config, context):
        events = create_event_listener(config, IItemVersionNewVersionAdded)
        creator = self.make_one(config, context)

        version_0 = self.make_one(config, context)
        version_1 = self.make_one(config,
                                  context,
                                  follows=[version_0],
                                  creator=creator)

        assert len(events) == 1
        assert events[0].object == version_0
        assert events[0].new_version == version_1
        assert events[0].creator == creator
Example #23
0
 def test_targets_set_add_with_registry(self, context, objectmap, config,
                                        registry):
     from adhocracy_core.testing import create_event_listener
     from adhocracy_core.interfaces import ISheetBackReferenceAdded
     from adhocracy_core.interfaces import ISheet
     source, target, target1 = create_dummy_resources(parent=context,
                                                      count=3)
     added_listener = create_event_listener(config,
                                            ISheetBackReferenceAdded)
     self.call_fut(objectmap, source, {target}, SheetReference, registry)
     event = added_listener[0]
     assert event.object == target
     assert event.isheet == ISheet
     assert event.reference.source == source
     assert event.reference.target == target
     assert event.reference.isheet == ISheet
Example #24
0
    def test_create_new_version_with_referencing_non_versionable(self, registry,
                                                                 config, item):
        from substanced.util import find_objectmap
        events = create_event_listener(config, ISheetReferenceNewVersion)
        creator = self.make_one(registry, item)

        version_0 = self.make_one(registry, item)
        other_version_0 = self.make_one(registry, item)
        om = find_objectmap(item)
        om.connect(other_version_0, version_0, SheetToSheet)
        self.make_one(registry, item,
                      follows=[version_0], creator=creator, is_batchmode=True)

        assert len(events) == 1
        assert events[0].creator == creator
        assert events[0].is_batchmode
Example #25
0
    def test_create_new_version_with_referencing_resources(
            self, config, context):
        events = create_event_listener(config, ISheetReferenceNewVersion)
        creator = self.make_one(config, context)

        version_0 = self.make_one(config, context)
        other_version_0 = self.make_one(config, context)
        context.__objectmap__.connect(other_version_0, version_0, SheetToSheet)
        self.make_one(config,
                      context,
                      follows=[version_0],
                      creator=creator,
                      is_batchmode=True)

        assert len(events) == 1
        assert events[0].creator == creator
        assert events[0].is_batchmode
Example #26
0
    def test_create_new_version_with_referencing_non_versionable(
            self, registry, config, item):
        from substanced.util import find_objectmap
        events = create_event_listener(config, ISheetReferenceNewVersion)
        creator = self.make_one(registry, item)

        version_0 = self.make_one(registry, item)
        other_version_0 = self.make_one(registry, item)
        om = find_objectmap(item)
        om.connect(other_version_0, version_0, SheetToSheet)
        self.make_one(registry,
                      item,
                      follows=[version_0],
                      creator=creator,
                      is_batchmode=True)

        assert len(events) == 1
        assert events[0].creator == creator
        assert events[0].is_batchmode
Example #27
0
 def test_notify_new_resource_created_and_added_without_parent(
     self, resource_meta, config, pool):
     events = create_event_listener(config, IResourceCreatedAndAdded)
     meta = resource_meta._replace(iresource=IResource, use_autonaming=True)
     self.make_one(meta)(parent=None)
     assert len(events) == 0
Example #28
0
 def test_create_first_and_send_version_added_event(self, config,
                                                    registry, item):
     events = create_event_listener(config, IItemVersionNewVersionAdded)
     version_0 = self.make_one(registry, item)
     assert events[0].object == None
     assert events[0].new_version == version_0
Example #29
0
 def test_create_first_and_send_version_added_event(self, config, registry,
                                                    item):
     events = create_event_listener(config, IItemVersionNewVersionAdded)
     version_0 = self.make_one(registry, item)
     assert events[0].object == None
     assert events[0].new_version == version_0
Example #30
0
 def test_notify_new_resource_created_and_added_without_parent(
         self, resource_meta, config, pool):
     events = create_event_listener(config, IResourceCreatedAndAdded)
     meta = resource_meta._replace(iresource=IResource, use_autonaming=True)
     self.make_one(meta)(parent=None)
     assert len(events) == 0
Example #31
0
 def test_notify_resource_sheet_modified_autoupdated(self, inst, config):
     from adhocracy_core.interfaces import IResourceSheetModified
     from adhocracy_core.testing import create_event_listener
     events = create_event_listener(config, IResourceSheetModified)
     inst.set({'count': 2}, autoupdated=True)
     assert events[0].autoupdated