diff options
Diffstat (limited to 'test/sql/test_compiler.py')
| -rw-r--r-- | test/sql/test_compiler.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py index 6330ee34e..528a49558 100644 --- a/test/sql/test_compiler.py +++ b/test/sql/test_compiler.py @@ -2855,6 +2855,50 @@ class CRUDTest(fixtures.TestBase, AssertsCompiledSQL): self.assert_compile(i, "INSERT INTO foo (x, y) VALUES ((:param_1 + :x2), :y)", params={'x2':1, 'y':2}) + def test_unconsumed_names(self): + t = table("t", column("x"), column("y")) + t2 = table("t2", column("q"), column("z")) + assert_raises_message( + exc.SAWarning, + "Unconsumed column names: z", + t.insert().values(x=5, z=5).compile, + ) + assert_raises_message( + exc.SAWarning, + "Unconsumed column names: z", + t.update().values(x=5, z=5).compile, + ) + + assert_raises_message( + exc.SAWarning, + "Unconsumed column names: j", + t.update().values(x=5, j=7).values({t2.c.z:5}). + where(t.c.x==t2.c.q).compile, + ) + + # bindparam names don't get counted + i = t.insert().values(x=3 + bindparam('x2')) + self.assert_compile( + i, + "INSERT INTO t (x) VALUES ((:param_1 + :x2))" + ) + + # even if in the params list + i = t.insert().values(x=3 + bindparam('x2')) + self.assert_compile( + i, + "INSERT INTO t (x) VALUES ((:param_1 + :x2))", + params={"x2":1} + ) + + assert_raises_message( + exc.SAWarning, + "Unconsumed column names: j", + t.update().values(x=5, j=7).compile, + column_keys=['j'] + ) + + def test_labels_no_collision(self): t = table('foo', column('id'), column('foo_id')) |
