diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2022-08-04 13:32:17 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2022-08-04 13:32:17 +0000 |
| commit | 0027b3a4bc54599ac8102a4a3d81d8007738903e (patch) | |
| tree | 5355294f6a81c5b413684dd371cc58c94bdcb5ab /test/dialect | |
| parent | dc5a1c482ee1a8faf15fd81db866e5f72c1c719f (diff) | |
| parent | f684bb7659ff195d4c55414162c1de4fbfdafc2f (diff) | |
| download | sqlalchemy-0027b3a4bc54599ac8102a4a3d81d8007738903e.tar.gz | |
Merge "ensure RETURNING renders in stringify w/ no server version" into main
Diffstat (limited to 'test/dialect')
| -rw-r--r-- | test/dialect/mssql/test_compiler.py | 16 | ||||
| -rw-r--r-- | test/dialect/mysql/test_compiler.py | 20 | ||||
| -rw-r--r-- | test/dialect/oracle/test_compiler.py | 16 | ||||
| -rw-r--r-- | test/dialect/postgresql/test_compiler.py | 16 | ||||
| -rw-r--r-- | test/dialect/test_sqlite.py | 16 |
5 files changed, 84 insertions, 0 deletions
diff --git a/test/dialect/mssql/test_compiler.py b/test/dialect/mssql/test_compiler.py index 74722e949..8605ea9c0 100644 --- a/test/dialect/mssql/test_compiler.py +++ b/test/dialect/mssql/test_compiler.py @@ -53,6 +53,22 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): self.assert_compile(sql.false(), "0") self.assert_compile(sql.true(), "1") + def test_plain_stringify_returning(self): + t = Table( + "t", + MetaData(), + Column("myid", Integer, primary_key=True), + Column("name", String, server_default="some str"), + Column("description", String, default=func.lower("hi")), + ) + stmt = t.insert().values().return_defaults() + eq_ignore_whitespace( + str(stmt.compile(dialect=mssql.dialect())), + "INSERT INTO t (description) " + "OUTPUT inserted.myid, inserted.name, inserted.description " + "VALUES (lower(:lower_1))", + ) + @testing.combinations( ("plain", "sometable", "sometable"), ("matched_square_brackets", "colo[u]r", "[colo[u]]r]"), diff --git a/test/dialect/mysql/test_compiler.py b/test/dialect/mysql/test_compiler.py index 3fb52416e..9d2c43bfe 100644 --- a/test/dialect/mysql/test_compiler.py +++ b/test/dialect/mysql/test_compiler.py @@ -61,6 +61,7 @@ from sqlalchemy.sql.expression import literal_column from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import AssertsCompiledSQL from sqlalchemy.testing import eq_ +from sqlalchemy.testing import eq_ignore_whitespace from sqlalchemy.testing import expect_warnings from sqlalchemy.testing import fixtures from sqlalchemy.testing import mock @@ -146,6 +147,25 @@ class CompileTest(ReservedWordFixture, fixtures.TestBase, AssertsCompiledSQL): dialect=dialect, ) + def test_plain_stringify_returning(self): + t = Table( + "t", + MetaData(), + Column("myid", Integer, primary_key=True), + Column("name", String, server_default="some str"), + Column("description", String, default=func.lower("hi")), + ) + stmt = t.insert().values().return_defaults() + eq_ignore_whitespace( + str(stmt.compile(dialect=mysql.dialect(is_mariadb=True))), + "INSERT INTO t (description) VALUES (lower(%s)) " + "RETURNING t.myid, t.name, t.description", + ) + eq_ignore_whitespace( + str(stmt.compile(dialect=mysql.dialect())), + "INSERT INTO t (description) VALUES (lower(%s))", + ) + def test_create_index_simple(self): m = MetaData() tbl = Table("testtbl", m, Column("data", String(255))) diff --git a/test/dialect/oracle/test_compiler.py b/test/dialect/oracle/test_compiler.py index 45a83ed77..96969b459 100644 --- a/test/dialect/oracle/test_compiler.py +++ b/test/dialect/oracle/test_compiler.py @@ -57,6 +57,22 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): self.assert_compile(sql.false(), "0") self.assert_compile(sql.true(), "1") + def test_plain_stringify_returning(self): + t = Table( + "t", + MetaData(), + Column("myid", Integer, primary_key=True), + Column("name", String, server_default="some str"), + Column("description", String, default=func.lower("hi")), + ) + stmt = t.insert().values().return_defaults() + eq_ignore_whitespace( + str(stmt.compile(dialect=oracle.OracleDialect())), + "INSERT INTO t (description) VALUES (lower(:lower_1)) " + "RETURNING t.myid, t.name, t.description " + "INTO :ret_0, :ret_1, :ret_2", + ) + def test_owner(self): meta = MetaData() parent = Table( diff --git a/test/dialect/postgresql/test_compiler.py b/test/dialect/postgresql/test_compiler.py index 9be76130d..5e5c4f9bd 100644 --- a/test/dialect/postgresql/test_compiler.py +++ b/test/dialect/postgresql/test_compiler.py @@ -56,6 +56,7 @@ from sqlalchemy.testing import fixtures from sqlalchemy.testing.assertions import assert_raises from sqlalchemy.testing.assertions import assert_raises_message from sqlalchemy.testing.assertions import AssertsCompiledSQL +from sqlalchemy.testing.assertions import eq_ignore_whitespace from sqlalchemy.testing.assertions import expect_warnings from sqlalchemy.testing.assertions import is_ from sqlalchemy.util import OrderedDict @@ -101,6 +102,21 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): __dialect__ = postgresql.dialect() + def test_plain_stringify_returning(self): + t = Table( + "t", + MetaData(), + Column("myid", Integer, primary_key=True), + Column("name", String, server_default="some str"), + Column("description", String, default=func.lower("hi")), + ) + stmt = t.insert().values().return_defaults() + eq_ignore_whitespace( + str(stmt.compile(dialect=postgresql.dialect())), + "INSERT INTO t (description) VALUES (lower(%(lower_1)s)) " + "RETURNING t.myid, t.name, t.description", + ) + def test_update_returning(self): dialect = postgresql.dialect() table1 = table( diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py index 286c6bcf8..643a56c1b 100644 --- a/test/dialect/test_sqlite.py +++ b/test/dialect/test_sqlite.py @@ -51,6 +51,7 @@ from sqlalchemy.testing import combinations from sqlalchemy.testing import config from sqlalchemy.testing import engines from sqlalchemy.testing import eq_ +from sqlalchemy.testing import eq_ignore_whitespace from sqlalchemy.testing import expect_raises from sqlalchemy.testing import expect_warnings from sqlalchemy.testing import fixtures @@ -972,6 +973,21 @@ class SQLTest(fixtures.TestBase, AssertsCompiledSQL): "INTEGER) AS anon_1 FROM t" % subst, ) + def test_plain_stringify_returning(self): + t = Table( + "t", + MetaData(), + Column("myid", Integer, primary_key=True), + Column("name", String, server_default="some str"), + Column("description", String, default=func.lower("hi")), + ) + stmt = t.insert().values().return_defaults() + eq_ignore_whitespace( + str(stmt.compile(dialect=sqlite.SQLiteDialect())), + "INSERT INTO t (description) VALUES (lower(?)) " + "RETURNING myid, name, description", + ) + def test_true_false(self): self.assert_compile(sql.false(), "0") self.assert_compile(sql.true(), "1") |
