[SQL-CVS] r777 - trunk/SQLObject/sqlobject/tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2005-05-07 05:38:11
|
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) |