def test_get_database_ddl(self, mock_create_stub):
        # Mock gRPC layer
        grpc_stub = mock.Mock()
        mock_create_stub.return_value = grpc_stub

        client = database_admin_client.DatabaseAdminClient()

        # Mock request
        database = client.database_path('[PROJECT]', '[INSTANCE]',
                                        '[DATABASE]')

        # Mock response
        expected_response = spanner_database_admin_pb2.GetDatabaseDdlResponse()
        grpc_stub.GetDatabaseDdl.return_value = expected_response

        response = client.get_database_ddl(database)
        self.assertEqual(expected_response, response)

        grpc_stub.GetDatabaseDdl.assert_called_once()
        args, kwargs = grpc_stub.GetDatabaseDdl.call_args
        self.assertEqual(len(args), 2)
        self.assertEqual(len(kwargs), 1)
        self.assertIn('metadata', kwargs)
        actual_request = args[0]

        expected_request = spanner_database_admin_pb2.GetDatabaseDdlRequest(
            database=database)
        self.assertEqual(expected_request, actual_request)
Пример #2
0
    def test_exists_success(self):
        from google.cloud.proto.spanner.admin.database.v1 import (
            spanner_database_admin_pb2 as admin_v1_pb2)
        from tests._fixtures import DDL_STATEMENTS

        client = _Client()
        ddl_pb = admin_v1_pb2.GetDatabaseDdlResponse(statements=DDL_STATEMENTS)
        api = client.database_admin_api = _FauxDatabaseAdminAPI(
            _get_database_ddl_response=ddl_pb)
        instance = _Instance(self.INSTANCE_NAME, client=client)
        pool = _Pool()
        database = self._make_one(self.DATABASE_ID, instance, pool=pool)

        self.assertTrue(database.exists())

        name, options = api._got_database_ddl
        self.assertEqual(name, self.DATABASE_NAME)
        self.assertEqual(options.kwargs['metadata'],
                         [('google-cloud-resource-prefix', database.name)])