summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing/suite/test_update_delete.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/testing/suite/test_update_delete.py')
-rw-r--r--lib/sqlalchemy/testing/suite/test_update_delete.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/lib/sqlalchemy/testing/suite/test_update_delete.py b/lib/sqlalchemy/testing/suite/test_update_delete.py
new file mode 100644
index 000000000..e73b05485
--- /dev/null
+++ b/lib/sqlalchemy/testing/suite/test_update_delete.py
@@ -0,0 +1,64 @@
+from .. import fixtures, config
+from ..config import requirements
+from ..assertions import eq_
+from .. import engines
+
+from sqlalchemy import Integer, String, select
+from ..schema import Table, Column
+
+
+class SimpleUpdateDeleteTest(fixtures.TablesTest):
+ run_deletes = 'each'
+
+ @classmethod
+ def define_tables(cls, metadata):
+ Table('plain_pk', metadata,
+ Column('id', Integer, primary_key=True),
+ Column('data', String(50))
+ )
+
+ @classmethod
+ def insert_data(cls):
+ config.db.execute(
+ cls.tables.plain_pk.insert(),
+ [
+ {"id":1, "data":"d1"},
+ {"id":2, "data":"d2"},
+ {"id":3, "data":"d3"},
+ ]
+ )
+
+ def test_update(self):
+ t = self.tables.plain_pk
+ r = config.db.execute(
+ t.update().where(t.c.id == 2),
+ data="d2_new"
+ )
+ assert not r.is_insert
+ assert not r.returns_rows
+
+ eq_(
+ config.db.execute(t.select().order_by(t.c.id)).fetchall(),
+ [
+ (1, "d1"),
+ (2, "d2_new"),
+ (3, "d3")
+ ]
+ )
+
+ def test_delete(self):
+ t = self.tables.plain_pk
+ r = config.db.execute(
+ t.delete().where(t.c.id == 2)
+ )
+ assert not r.is_insert
+ assert not r.returns_rows
+ eq_(
+ config.db.execute(t.select().order_by(t.c.id)).fetchall(),
+ [
+ (1, "d1"),
+ (3, "d3")
+ ]
+ )
+
+__all__ = ('SimpleUpdateDeleteTest', ) \ No newline at end of file