Author: daverz
Date: 2005-05-07 05:38:05 +0000 (Sat, 07 May 2005)
New Revision: 777
Added:
trunk/SQLObject/sqlobject/tests/test_NoneValuedResultItem.py
Log:
Test that query results with None IDs (e.g. some outer join cases)
are handled correctly, i.e. return None for that object.
Added: trunk/SQLObject/sqlobject/tests/test_NoneValuedResultItem.py
===================================================================
--- trunk/SQLObject/sqlobject/tests/test_NoneValuedResultItem.py 2005-05-06 17:07:38 UTC (rev 776)
+++ trunk/SQLObject/sqlobject/tests/test_NoneValuedResultItem.py 2005-05-07 05:38:05 UTC (rev 777)
@@ -0,0 +1,28 @@
+'''Test that selectResults handle NULL values
+from, for example, outer joins.'''
+from sqlobject import *
+from sqlobject.tests.dbtest import *
+
+class TestComposer(SQLObject):
+ name = StringCol()
+
+class TestWork(SQLObject):
+ class sqlmeta:
+ idName = "work_id"
+
+ composer = ForeignKey('TestComposer')
+ title = StringCol()
+
+def test1():
+ setupClass(TestComposer)
+ setupClass(TestWork)
+
+ c = TestComposer(name='Mahler, Gustav')
+ w = TestWork(composer=c, title='Symphony No. 9')
+ c2 = TestComposer(name='Bruckner, Anton')
+ # but don't add any works for Bruckner
+
+ # do a left join, a common use case that often involves NULL results
+ s = TestWork.select(join=sqlbuilder.LEFTJOINOn(TestComposer, TestWork,
+ TestComposer.q.id==TestWork.q.composerID))
+ assert tuple(s)==(w, None)
|