Source code for sqlobject.tests.test_NoneValuedResultItem

# Test that selectResults handle NULL values from, for example, outer joins.
fromsqlobjectimport ForeignKey, SQLObject, StringCol, sqlbuilder
fromsqlobject.tests.dbtestimport setupClass
[docs] classSOTestComposer(SQLObject): name = StringCol()
[docs] classSOTestWork(SQLObject): classsqlmeta: idName = "work_id" composer = ForeignKey('SOTestComposer') title = StringCol()
[docs] deftest1(): setupClass([SOTestComposer, SOTestWork]) c = SOTestComposer(name='Mahler, Gustav') w = SOTestWork(composer=c, title='Symphony No. 9') SOTestComposer(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 = SOTestWork.select( join=sqlbuilder.LEFTJOINOn( SOTestComposer, SOTestWork, SOTestComposer.q.id == SOTestWork.q.composerID)) assert tuple(s) == (w, None)