[SQL-CVS] r1977 - in SQLObject/trunk/sqlobject: . tests util
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2006-10-04 15:20:06
|
Author: phd Date: 2006-10-04 09:19:59 -0600 (Wed, 04 Oct 2006) New Revision: 1977 Modified: SQLObject/trunk/sqlobject/sresults.py SQLObject/trunk/sqlobject/tests/test_select.py SQLObject/trunk/sqlobject/util/csvexport.py Log: SelectResults cannot be queried for truth value; __nonzero__() raises NotImplementedError. Modified: SQLObject/trunk/sqlobject/sresults.py =================================================================== --- SQLObject/trunk/sqlobject/sresults.py 2006-10-03 19:01:53 UTC (rev 1976) +++ SQLObject/trunk/sqlobject/sresults.py 2006-10-04 15:19:59 UTC (rev 1977) @@ -35,6 +35,10 @@ def __repr__(self): return "<%s at %x>" % (self.__class__.__name__, id(self)) + def __nonzero__(self): + raise NotImplementedError( + "To test if a SelectResult will produce any items, use list(result) or result.count()") + def _getConnection(self): return self.ops.get('connection') or self.sourceClass._connection Modified: SQLObject/trunk/sqlobject/tests/test_select.py =================================================================== --- SQLObject/trunk/sqlobject/tests/test_select.py 2006-10-03 19:01:53 UTC (rev 1976) +++ SQLObject/trunk/sqlobject/tests/test_select.py 2006-10-04 15:19:59 UTC (rev 1977) @@ -168,3 +168,8 @@ assert IterTest.select(RLIKE(IterTest.q.name, "^sqlb.*$")).count() == 1 assert IterTest.select(RLIKE(IterTest.q.name, "^sqlb.*$")).count() == 1 assert IterTest.select(RLIKE(IterTest.q.name, "^sqlx.*$")).count() == 0 + +def test_bool_SelectResults(): + setupClass(IterTest) + + raises(NotImplementedError, bool, IterTest.select()) Modified: SQLObject/trunk/sqlobject/util/csvexport.py =================================================================== --- SQLObject/trunk/sqlobject/util/csvexport.py 2006-10-03 19:01:53 UTC (rev 1976) +++ SQLObject/trunk/sqlobject/util/csvexport.py 2006-10-04 15:19:59 UTC (rev 1977) @@ -58,14 +58,14 @@ writer = csv.writer(return_fileobj) elif not hasattr(writer, 'writerow'): writer = csv.writer(writer) - + if isinstance(soClass, sqlobject.SQLObject.SelectResultsClass): - assert not select, ( + assert select is None, ( "You cannot pass in a select argument (%r) and a SelectResult argument (%r) for soClass" % (select, soClass)) select = soClass soClass = select.sourceClass - elif not select: + elif select is None: select = soClass.select() if getattr(soClass, 'csvOrderBy', None): select = select.orderBy(soClass.csvOrderBy) |