예제 #1
0
 def get_table_column_schema(*args, **kwargs):
     column_details = {}
     column_details["name"] = ColumnDetails(null_ok=False,
                                            spanner_type="STRING(10)")
     column_details["age"] = ColumnDetails(null_ok=True,
                                           spanner_type="INT64")
     return column_details
예제 #2
0
    def test_get_table_column_schema(self):
        from google.cloud.spanner_dbapi.cursor import ColumnDetails
        from google.cloud.spanner_dbapi import _helpers
        from google.cloud.spanner_v1 import param_types

        connection = self._make_connection(self.INSTANCE, self.DATABASE)
        cursor = self._make_one(connection)

        column_name = "column1"
        is_nullable = "YES"
        spanner_type = "spanner_type"
        rows = [(column_name, is_nullable, spanner_type)]
        expected = {
            column_name: ColumnDetails(null_ok=True, spanner_type=spanner_type)
        }
        with mock.patch(
                "google.cloud.spanner_dbapi.cursor.Cursor.run_sql_in_snapshot",
                return_value=rows,
        ) as mock_run_sql:
            table_name = "table1"
            result = cursor.get_table_column_schema(table_name=table_name)
            mock_run_sql.assert_called_once_with(
                sql=_helpers.SQL_GET_TABLE_COLUMN_SCHEMA,
                params={"table_name": table_name},
                param_types={"table_name": param_types.STRING},
            )
            self.assertEqual(result, expected)