[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():
|