fix: Presto _show_columns return type (#20757)

This commit is contained in:
John Bodley
2022-07-19 09:52:22 -07:00
committed by GitHub
parent e2d3ea831a
commit 8c0ac9017f
2 changed files with 12 additions and 9 deletions

View File

@@ -442,8 +442,7 @@ class PrestoEngineSpec(BaseEngineSpec): # pylint: disable=too-many-public-metho
full_table = quote(table_name)
if schema:
full_table = "{}.{}".format(quote(schema), full_table)
columns = inspector.bind.execute("SHOW COLUMNS FROM {}".format(full_table))
return columns
return inspector.bind.execute(f"SHOW COLUMNS FROM {full_table}").fetchall()
column_type_mappings = (
(

View File

@@ -84,7 +84,7 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
inspector.engine.dialect.identifier_preparer.quote_identifier = mock.Mock()
row = mock.Mock()
row.Column, row.Type, row.Null = column
inspector.bind.execute = mock.Mock(return_value=[row])
inspector.bind.execute.return_value.fetchall = mock.Mock(return_value=[row])
results = PrestoEngineSpec.get_columns(inspector, "", "")
self.assertEqual(len(expected_results), len(results))
for expected_result, result in zip(expected_results, results):
@@ -744,25 +744,29 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
inspector.engine.dialect.identifier_preparer.quote_identifier = (
lambda x: f'"{x}"'
)
mock_execute = mock.MagicMock(return_value=["a", "b"])
inspector.bind.execute = mock_execute
inspector.bind.execute.return_value.fetchall = mock.MagicMock(
return_value=["a", "b"]
)
table_name = "table_name"
result = PrestoEngineSpec._show_columns(inspector, table_name, None)
assert result == ["a", "b"]
mock_execute.assert_called_once_with(f'SHOW COLUMNS FROM "{table_name}"')
inspector.bind.execute.assert_called_once_with(
f'SHOW COLUMNS FROM "{table_name}"'
)
def test_show_columns_with_schema(self):
inspector = mock.MagicMock()
inspector.engine.dialect.identifier_preparer.quote_identifier = (
lambda x: f'"{x}"'
)
mock_execute = mock.MagicMock(return_value=["a", "b"])
inspector.bind.execute = mock_execute
inspector.bind.execute.return_value.fetchall = mock.MagicMock(
return_value=["a", "b"]
)
table_name = "table_name"
schema = "schema"
result = PrestoEngineSpec._show_columns(inspector, table_name, schema)
assert result == ["a", "b"]
mock_execute.assert_called_once_with(
inspector.bind.execute.assert_called_once_with(
f'SHOW COLUMNS FROM "{schema}"."{table_name}"'
)