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
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
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
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
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
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
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
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
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
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
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]
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_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
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
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
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
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
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_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
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
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
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
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
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
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
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
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
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
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