def setUp(self): super(KindTest, self).setUp() view = self.view self.kind = view.findPath("//Schema/Core/Kind") self.itemKind = view.findPath("//Schema/Core/Item") self.attrKind = self.itemKind.itsParent['Attribute'] self.kind1 = self.kind.newItem('kind1', view) self.kind1.addValue('superKinds', self.itemKind) self.kind1Attr1 = Attribute('k1a1', view, self.attrKind) self.kind1Attr1.cardinality = 'list' self.kind1Attr1.otherName = 'owner' self.kind1.addValue('attributes', self.kind1Attr1, alias='k1a1') kind1Attr1Bad = Attribute('k1a1bad', self.kind1, self.attrKind) kind1Attr1Bad.cardinality = 'list' kind1Attr1Bad.otherName = 'owner' try: self.kind1.addValue('attribute', kind1Attr1Bad, alias='k1a1bad') except AttributeError: pass self.kind2 = self.kind.newItem('kind2', self.kind1) self.kind2.addValue('superKinds', self.itemKind) self.kind2.addValue('attributes', self.kind1Attr1, alias='k1a1') self.kind2Attr2 = Attribute('k2a2', view, self.attrKind) self.kind2Attr2.cardinality = 'list' self.kind2.addValue('attributes', self.kind2Attr2, alias='k2a2')
def _createBlockKind(self, cardinality): view = self.view kind = view.findPath("//Schema/Core/Kind") itemKind = view.findPath("//Schema/Core/Item") attrKind = itemKind.itsParent["Attribute"] # blockKind has a 'blocks' reference collection, and an inverse 'blockParent' blockKind = kind.newItem("Block", view) blocksAttribute = Attribute("blocks", blockKind, attrKind) blocksAttribute.cardinality = cardinality blocksAttribute.otherName = "blockParent" blockKind.addValue("attributes", blocksAttribute, alias="blocks") blockParentAttribute = Attribute("blockParent", blockKind, attrKind) blockParentAttribute.cardinality = "single" blockParentAttribute.otherName = "blocks" blockKind.addValue("attributes", blockParentAttribute, alias="blockParent") return blockKind
def _createBlockKind(self, cardinality): view = self.view kind = view.findPath('//Schema/Core/Kind') itemKind = view.findPath('//Schema/Core/Item') attrKind = itemKind.itsParent['Attribute'] # blockKind has a 'blocks' reference collection, and an inverse 'blockParent' blockKind = kind.newItem('Block', view) blocksAttribute = Attribute('blocks', blockKind, attrKind) blocksAttribute.cardinality = cardinality blocksAttribute.otherName = 'blockParent' blockKind.addValue('attributes', blocksAttribute, alias='blocks') blockParentAttribute = Attribute('blockParent', blockKind, attrKind) blockParentAttribute.cardinality = 'single' blockParentAttribute.otherName = 'blocks' blockKind.addValue('attributes', blockParentAttribute, alias='blockParent') return blockKind
def _createManagerAndEmployeeKinds(self, type): view = self.view kind = view.findPath('//Schema/Core/Kind') itemKind = view.findPath('//Schema/Core/Item') attrKind = itemKind.itsParent['Attribute'] managerKind = kind.newItem('manager', view) employeesAttribute = Attribute('employees', managerKind, attrKind) employeesAttribute.cardinality = type employeesAttribute.otherName = 'manager' managerKind.addValue('attributes', employeesAttribute, alias='employees') employeeKind = kind.newItem('employee', view) managerAttribute = Attribute('manager', employeeKind, attrKind) managerAttribute.otherName = 'employees' employeeKind.addValue('attributes', managerAttribute, alias='manager') return managerKind, employeeKind
def _createBlockAndEventKinds(self, cardinality): view = self.view kind = view.findPath('//Schema/Core/Kind') itemKind = view.findPath('//Schema/Core/Item') attrKind = itemKind.itsParent['Attribute'] # blockKind has a 'blocks' reference collection, and an inverse 'blockParent' blockKind = kind.newItem('Block', view) blocksAttribute = Attribute('blocks', blockKind, attrKind) blocksAttribute.cardinality = cardinality blocksAttribute.copyPolicy = currentPolicy blocksAttribute.otherName = 'blockParent' blockKind.addValue('attributes', blocksAttribute, alias='blocks') blockParentAttribute = Attribute('blockParent', blockKind, attrKind) blockParentAttribute.cardinality = 'single' blockParentAttribute.otherName = 'blocks' blockParentAttribute.copyPolicy = currentPolicy blockKind.addValue('attributes', blockParentAttribute, alias='blockParent') # also has an "event" reference that has no inverse eventAttribute = Attribute('event', blockKind, attrKind) eventAttribute.cardinality = 'single' eventAttribute.copyPolicy = currentPolicy blockKind.addValue('attributes', eventAttribute, alias='event') # create the event kind, which has a pointer to a Block. eventKind = kind.newItem('Event', view) notifyBlock = Attribute('notify', eventKind, attrKind) notifyBlock.cardinality = 'single' notifyBlock.copyPolicy = currentPolicy eventKind.addValue('attributes', notifyBlock, alias='notify') return (blockKind, eventKind)