[SQL-CVS] r1324 - SQLObject/trunk/sqlobject/tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2005-11-26 21:49:12
|
Author: ianb
Date: 2005-11-26 21:49:08 +0000 (Sat, 26 Nov 2005)
New Revision: 1324
Added:
SQLObject/trunk/sqlobject/tests/test_combining_joins.py
Log:
Added test for last commit
Added: SQLObject/trunk/sqlobject/tests/test_combining_joins.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_combining_joins.py 2005-11-26 21:44:54 UTC (rev 1323)
+++ SQLObject/trunk/sqlobject/tests/test_combining_joins.py 2005-11-26 21:49:08 UTC (rev 1324)
@@ -0,0 +1,42 @@
+from sqlobject import *
+from dbtest import *
+
+class ComplexGroup(SQLObject):
+ name = StringCol()
+ complexes = OneToMany('Complex')
+ def _get_unit_models(self):
+ q = self.complexes.clause & Complex.unit_models.clause
+ return UnitModel.select(q)
+
+class Complex(SQLObject):
+ name = StringCol()
+ unit_models = ManyToMany('UnitModel')
+ complex_group = ForeignKey('ComplexGroup')
+
+class UnitModel(SQLObject):
+ class sqlmeta:
+ defaultOrderBy = 'name'
+ name = StringCol()
+ complexes = ManyToMany('Complex')
+
+def test_join_sqlrepr():
+ setupClass([ComplexGroup, UnitModel, Complex])
+ cg1 = ComplexGroup(name='cg1')
+ cg2 = ComplexGroup(name='cg2')
+ c1 = Complex(name='c1', complex_group=cg1)
+ c2 = Complex(name='c2', complex_group=cg2)
+ c3 = Complex(name='c3', complex_group=cg2)
+ u1 = UnitModel(name='u1')
+ u2 = UnitModel(name='u2')
+ u1.complexes.add(c1)
+ u1.complexes.add(c2)
+ u2.complexes.add(c2)
+ u2.complexes.add(c3)
+ assert list(Complex.selectBy(name='c1')) == [c1]
+
+ assert list(cg1.unit_models) == [u1]
+ assert list(cg2.unit_models) == [u1, u2, u2]
+ assert list(cg2.unit_models.distinct()) == [u1, u2]
+
+ assert list(
+ cg2.unit_models.filter(UnitModel.q.name=='u1')) == [u1]
Property changes on: SQLObject/trunk/sqlobject/tests/test_combining_joins.py
___________________________________________________________________
Name: svn:eol-style
+ native
|