def test_sheetreferences(self, context, objectmap): resource, resource2 = create_dummy_resources(parent=context, count=2) objectmap.connect(resource, resource2, SheetToSheet) result = self.call_fut(objectmap, resource) source, isheet, field, target = result.__next__() assert source == resource assert isheet == SheetReference.getTaggedValue('source_isheet') assert field == SheetReference.getTaggedValue('source_isheet_field') assert target == resource2
def set_references(self, source, targets: Iterable, reftype: SheetReference, registry: Registry=None, send_event=True): """Set references of this source. :param targets: the reference targets, for Sequences the order is preserved. :param reftype: the reftype mapping to one isheet field. :param registry: pyramid registry to notify referenced resources. Default value is None to ease testing. :param send_event: send events to notify referenced resources """ assert reftype.isOrExtends(SheetReference) multireference = self._create_multireference(source, targets, reftype) old = set([x for x in multireference]) multireference.clear() multireference.connect(targets) if registry is None: return new = set(targets) if send_event: removed = old - new self._notify_removed_targets(source, reftype, removed, registry) added = new - old self._notify_added_targets(source, reftype, added, registry)
def set_references(self, source, targets: Iterable, reftype: SheetReference, registry: Registry = None): """Set references of this source. :param targets: the reference targets, for Sequences the order is preserved. :param reftype: the reftype mapping to one isheet field. :param registry: pyramid registry to notify referenced resources. Default value is None to ease testing. """ assert reftype.isOrExtends(SheetReference) multireference = self._create_multireference(source, targets, reftype) old = set([x for x in multireference]) multireference.clear() multireference.connect(targets) if registry is None: return new = set(targets) removed = old - new self._notify_removed_targets(source, reftype, removed, registry) added = new - old self._notify_added_targets(source, reftype, added, registry)