summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/testing')
-rw-r--r--lib/sqlalchemy/testing/requirements.py4
-rw-r--r--lib/sqlalchemy/testing/suite/test_reflection.py46
2 files changed, 48 insertions, 2 deletions
diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py
index e4491ca7c..d38a69159 100644
--- a/lib/sqlalchemy/testing/requirements.py
+++ b/lib/sqlalchemy/testing/requirements.py
@@ -322,6 +322,10 @@ class SuiteRequirements(Requirements):
return exclusions.open()
@property
+ def comment_reflection(self):
+ return exclusions.closed()
+
+ @property
def view_column_reflection(self):
"""target database must support retrieval of the columns in a view,
similarly to how a table is inspected.
diff --git a/lib/sqlalchemy/testing/suite/test_reflection.py b/lib/sqlalchemy/testing/suite/test_reflection.py
index 572cc4a0a..a761c0882 100644
--- a/lib/sqlalchemy/testing/suite/test_reflection.py
+++ b/lib/sqlalchemy/testing/suite/test_reflection.py
@@ -102,6 +102,11 @@ class ComponentReflectionTest(fixtures.TablesTest):
schema=schema,
test_needs_fk=True,
)
+ Table('comment_test', metadata,
+ Column('id', sa.Integer, primary_key=True, comment='id comment'),
+ Column('data', sa.String(20), comment='data comment'),
+ schema=schema,
+ comment='the test table comment')
if testing.requires.index_reflection.enabled:
cls.define_index(metadata, users)
@@ -203,8 +208,11 @@ class ComponentReflectionTest(fixtures.TablesTest):
answer = ['email_addresses_v', 'users_v']
eq_(sorted(table_names), answer)
else:
- table_names = insp.get_table_names(schema,
- order_by=order_by)
+ table_names = [
+ t for t in insp.get_table_names(
+ schema,
+ order_by=order_by) if t not in ('comment_test', )]
+
if order_by == 'foreign_key':
answer = ['users', 'email_addresses', 'dingalings']
eq_(table_names, answer)
@@ -235,6 +243,40 @@ class ComponentReflectionTest(fixtures.TablesTest):
def test_get_table_names_fks(self):
self._test_get_table_names(order_by='foreign_key')
+ @testing.requires.comment_reflection
+ def test_get_comments(self):
+ self._test_get_comments()
+
+ @testing.requires.comment_reflection
+ @testing.requires.schemas
+ def test_get_comments_with_schema(self):
+ self._test_get_comments(testing.config.test_schema)
+
+ def _test_get_comments(self, schema=None):
+ insp = inspect(testing.db)
+
+ eq_(
+ insp.get_table_comment("comment_test", schema=schema),
+ {"text": "the test table comment"}
+ )
+
+ eq_(
+ insp.get_table_comment("users", schema=schema),
+ {"text": None}
+ )
+
+ eq_(
+ [
+ {"name": rec['name'], "comment": rec['comment']}
+ for rec in
+ insp.get_columns("comment_test", schema=schema)
+ ],
+ [
+ {'comment': 'id comment', 'name': 'id'},
+ {'comment': 'data comment', 'name': 'data'}
+ ]
+ )
+
@testing.requires.table_reflection
@testing.requires.schemas
def test_get_table_names_with_schema(self):