[Modeling-cvs] ProjectModeling/Modeling/tests test_PyModel.py,1.1.2.2,1.1.2.3
Status: Abandoned
Brought to you by:
sbigaret
From: <sbi...@us...> - 2003-05-18 15:28:18
|
Update of /cvsroot/modeling/ProjectModeling/Modeling/tests In directory sc8-pr-cvs1:/tmp/cvs-serv3856/tests Modified Files: Tag: brch-0_9pre7-1-PyModel test_PyModel.py Log Message: Added tests for Associations + now checks that relationships' properties (such as their delete rule) are correctly set Index: test_PyModel.py =================================================================== RCS file: /cvsroot/modeling/ProjectModeling/Modeling/tests/Attic/test_PyModel.py,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** test_PyModel.py 18 May 2003 11:54:34 -0000 1.1.2.2 --- test_PyModel.py 18 May 2003 15:28:15 -0000 1.1.2.3 *************** *** 83,95 **** # Check toStore and toMarks for Employee toStore=emp.propertyNamed('toStore') toMarks=emp.propertyNamed('toMarks') check(self, toStore, toMarks, store, mark) ! self.failIf(emp.propertyNamed('fkStore') not in toStore.sourceAttributes()) self.failIf(store.propertyNamed('id') not in toStore.destinationAttributes()) self.failIf(emp.propertyNamed('id') not in toMarks.sourceAttributes()) self.failIf(mark.propertyNamed('fkEmployee') not in toMarks.destinationAttributes()) # Check toStore and toMarks for SalesClerk toStore=sc.propertyNamed('toStore') toMarks=sc.propertyNamed('toMarks') check(self, toStore, toMarks, store, mark) --- 83,98 ---- # Check toStore and toMarks for Employee toStore=emp.propertyNamed('toStore') + fkStore=emp.propertyNamed('fkStore') toMarks=emp.propertyNamed('toMarks') check(self, toStore, toMarks, store, mark) ! self.failIf(fkStore not in toStore.sourceAttributes()) self.failIf(store.propertyNamed('id') not in toStore.destinationAttributes()) self.failIf(emp.propertyNamed('id') not in toMarks.sourceAttributes()) self.failIf(mark.propertyNamed('fkEmployee') not in toMarks.destinationAttributes()) + self.failIf(fkStore.isRequired()!=toStore.multiplicityLowerBound()) # Check toStore and toMarks for SalesClerk toStore=sc.propertyNamed('toStore') + fkStore=sc.propertyNamed('fkStore') toMarks=sc.propertyNamed('toMarks') check(self, toStore, toMarks, store, mark) *************** *** 98,101 **** --- 101,105 ---- self.failIf(sc.propertyNamed('id') not in toMarks.sourceAttributes()) self.failIf(mark.propertyNamed('fkEmployee') not in toMarks.destinationAttributes()) + self.failIf(fkStore.isRequired()!=toStore.multiplicityLowerBound()) def check_inverse_rels(self, model): *************** *** 108,114 **** store=model.component.entityNamed('Store') mark=model.component.entityNamed('Mark') self.failUnless(mark.relationshipNamed('toEmployee').inverseRelationship()==emp.propertyNamed('toMarks')) self.failUnless(store.relationshipNamed('toEmployees').inverseRelationship()==emp.propertyNamed('toStore')) ! ## BEGIN tests def setUp(self): --- 112,122 ---- store=model.component.entityNamed('Store') mark=model.component.entityNamed('Mark') + self.failUnless(mark.relationshipNamed('toEmployee').inverseRelationship()==emp.propertyNamed('toMarks')) self.failUnless(store.relationshipNamed('toEmployees').inverseRelationship()==emp.propertyNamed('toStore')) ! ! toEmployee=mark.relationshipNamed('toEmployee') ! self.failIf(mark.propertyNamed('fkEmployee').isRequired()!=toEmployee.multiplicityLowerBound()) ! ## BEGIN tests def setUp(self): *************** *** 207,212 **** Entity('Employee', properties=[ AForeignKey('fkStore'), ! RToOne('toStore', 'Store',src='fkStore',dst='id'), ! RToMany('toMarks', 'Mark',src='id',dst='fkEmployee'), ] ), Entity('SalesClerk', parent='Employee'), --- 215,222 ---- Entity('Employee', properties=[ AForeignKey('fkStore'), ! RToOne('toStore', 'Store',src='fkStore',dst='id', ! delete='deny'), ! RToMany('toMarks', 'Mark',src='id',dst='fkEmployee', ! delete='cascade'), ] ), Entity('SalesClerk', parent='Employee'), *************** *** 216,219 **** --- 226,231 ---- model.build() self.check_model(model) + self.failIf(model.component.entityNamed('Employee').propertyNamed('toStore').deleteRule()!='deny') + self.failIf(model.component.entityNamed('Employee').propertyNamed('toMarks').deleteRule()!='cascade') def test_05_unqualified_relationships_no_inverse(self): *************** *** 354,357 **** --- 366,403 ---- self.check_inverse_rels(self.model) # + self.setUp() + model=self.model + model.entities = [ + Entity('Employee'), + Entity('SalesClerk', parent='Employee'), + Entity('Mark'), + Entity('Store'), + ] + model.associations = [ + Association('Employee', 'Store', + relations=['toStore', 'toEmployees'], + multiplicity=[ [1, 1], [0, None] ], + keys=['fkStore', 'id'], + delete=['nullify', 'deny'], + ), + Association('Mark', 'Employee', + relations=['toEmployee', 'toMarks'], + multiplicity=[ [1, 1], [0, None] ], + keys=['fkEmployee', 'id'], + delete=['nullify', 'cascade'] + ), + ] + model.build() + self.check_model(model) + self.check_inverse_rels(model) + # check that delete rules were correctly set + emp=model.component.entityNamed('Employee') + mark=model.component.entityNamed('Mark') + store=model.component.entityNamed('Store') + + self.failIf(emp.propertyNamed('toStore').deleteRule()!='nullify') + self.failIf(emp.propertyNamed('toMarks').deleteRule()!='cascade') + self.failIf(store.propertyNamed('toEmployees').deleteRule()!='deny') + self.failIf(mark.propertyNamed('toEmployee').deleteRule()!='nullify') def test_suite(): |