summaryrefslogtreecommitdiff
path: root/test/sql/test_metadata.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2019-09-06 18:40:46 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2019-09-06 18:43:58 -0400
commit7afcb39a962d383e5ba04179c1b13131fb08a787 (patch)
tree266d62873e14f5a1466ec1f3fa373571bdcbd7f9 /test/sql/test_metadata.py
parentfc48050e5d0c56fc5a6cd85679859e71961c59eb (diff)
downloadsqlalchemy-7afcb39a962d383e5ba04179c1b13131fb08a787.tar.gz
Catch set_parent_w_dispatch missing
Added an explicit error message for the case when objects passed to :class:`.Table` are not :class:`.SchemaItem` objects, rather than resolving to an attribute error. Fixes: #4847 Change-Id: I4dcdcee86b64c85ccf12e2ddc3d638563d307991
Diffstat (limited to 'test/sql/test_metadata.py')
-rw-r--r--test/sql/test_metadata.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py
index f3fa008c5..ad251d1b8 100644
--- a/test/sql/test_metadata.py
+++ b/test/sql/test_metadata.py
@@ -1465,6 +1465,37 @@ class TableTest(fixtures.TestBase, AssertsCompiledSQL):
t.info["bar"] = "zip"
assert t.info["bar"] == "zip"
+ def test_invalid_objects(self):
+ assert_raises_message(
+ tsa.exc.ArgumentError,
+ "'SchemaItem' object, such as a 'Column' or a "
+ "'Constraint' expected, got <.*ColumnClause at .*; q>",
+ Table,
+ "asdf",
+ MetaData(),
+ tsa.column("q", Integer),
+ )
+
+ assert_raises_message(
+ tsa.exc.ArgumentError,
+ r"'SchemaItem' object, such as a 'Column' or a "
+ r"'Constraint' expected, got String\(\)",
+ Table,
+ "asdf",
+ MetaData(),
+ String(),
+ )
+
+ assert_raises_message(
+ tsa.exc.ArgumentError,
+ "'SchemaItem' object, such as a 'Column' or a "
+ "'Constraint' expected, got 12",
+ Table,
+ "asdf",
+ MetaData(),
+ 12,
+ )
+
def test_reset_exported_passes(self):
m = MetaData()