[SQL-CVS] SQLObject/tests test.py,1.3,1.4
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <ian...@us...> - 2003-04-06 07:56:11
|
Update of /cvsroot/sqlobject/SQLObject/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv16742/tests
Modified Files:
test.py
Log Message:
Added a related join test
Index: test.py
===================================================================
RCS file: /cvsroot/sqlobject/SQLObject/tests/test.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** test.py 31 Mar 2003 05:51:28 -0000 1.3
--- test.py 6 Apr 2003 07:56:06 -0000 1.4
***************
*** 171,174 ****
--- 171,220 ----
########################################
+ ## Joins
+ ########################################
+
+ class PersonJoiner(SQLObject):
+
+ _columns = [StringCol('name', length=40, alternateID=True)]
+ _joins = [RelatedJoin('AddressJoiner')]
+
+ class AddressJoiner(SQLObject):
+
+ _columns = [StringCol('zip', length=5, alternateID=True)]
+ _joins = [RelatedJoin('PersonJoiner')]
+
+ class JoinTest(SQLObjectTest):
+
+ classes = [PersonJoiner, AddressJoiner]
+
+ def inserts(self):
+ for n in ['bob', 'tim', 'jane', 'joe', 'fred', 'barb']:
+ PersonJoiner.new(name=n)
+ for z in ['11111', '22222', '33333', '44444']:
+ AddressJoiner.new(zip=z)
+
+ def testJoin(self):
+ b = PersonJoiner.byName('bob')
+ self.assertEqual(b.addressJoiners, [])
+ z = AddressJoiner.byZip('11111')
+ b.addAddressJoiner(z)
+ self.assertZipsEqual(b.addressJoiners, ['11111'])
+ self.assertNamesEqual(z.personJoiners, ['bob'])
+ z2 = AddressJoiner.byZip('22222')
+ b.addAddressJoiner(z2)
+ self.assertZipsEqual(b.addressJoiners, ['11111', '22222'])
+ self.assertNamesEqual(z2.personJoiners, ['bob'])
+ b.removeAddressJoiner(z)
+ self.assertZipsEqual(b.addressJoiners, ['22222'])
+ self.assertNamesEqual(z.personJoiners, [])
+
+ def assertZipsEqual(self, zips, dest):
+ self.assertEqual([a.zip for a in zips], dest)
+
+ def assertNamesEqual(self, people, dest):
+ self.assertEqual([p.name for p in people], dest)
+
+
+ ########################################
## Run from command-line:
########################################
|