[SQL-CVS] r2444 - in SQLObject/trunk/sqlobject: . tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2007-03-22 16:24:16
|
Author: phd
Date: 2007-03-22 10:24:00 -0600 (Thu, 22 Mar 2007)
New Revision: 2444
Modified:
SQLObject/trunk/sqlobject/main.py
SQLObject/trunk/sqlobject/tests/test_delete.py
Log:
cls.deleteMany(), cls.deleteBy().
Modified: SQLObject/trunk/sqlobject/main.py
===================================================================
--- SQLObject/trunk/sqlobject/main.py 2007-03-22 16:22:46 UTC (rev 2443)
+++ SQLObject/trunk/sqlobject/main.py 2007-03-22 16:24:00 UTC (rev 2444)
@@ -1562,6 +1562,19 @@
delete = classmethod(delete)
+ def deleteMany(cls, where=NoDefault, connection=None):
+ conn = connection or cls._connection
+ conn.query(conn.sqlrepr(sqlbuilder.Delete(cls.sqlmeta.table, where)))
+
+ deleteMany = classmethod(deleteMany)
+
+ def deleteBy(cls, connection=None, **kw):
+ conn = connection or cls._connection
+ conn.query(conn.sqlrepr(sqlbuilder.Delete(cls.sqlmeta.table,
+ conn._SO_columnClause(cls, kw))))
+
+ deleteBy = classmethod(deleteBy)
+
def __repr__(self):
if not hasattr(self, 'id'):
# Object initialization not finished. No attributes can be read.
@@ -1600,6 +1613,7 @@
cls._connection = value
setConnection = classmethod(setConnection)
+
def capitalize(name):
return name[0].capitalize() + name[1:]
Modified: SQLObject/trunk/sqlobject/tests/test_delete.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_delete.py 2007-03-22 16:22:46 UTC (rev 2443)
+++ SQLObject/trunk/sqlobject/tests/test_delete.py 2007-03-22 16:24:00 UTC (rev 2444)
@@ -13,6 +13,20 @@
assert list(TestSO1.select('all')) == []
########################################
+## Delete many rows at once
+########################################
+
+def testDeleteMany():
+ setupGetters(TestSO1)
+ TestSO1.deleteMany(OR(TestSO1.q.name=="bob", TestSO1.q.name=="fred"))
+ assert len(list(TestSO1.select('all'))) == 2
+
+def testDeleteBy():
+ setupGetters(TestSO1)
+ TestSO1.deleteBy(name="dave")
+ assert len(list(TestSO1.select())) == 3
+
+########################################
## Delete without caching
########################################
|