@@ -547,6 +547,70 @@ def test_list_zones_failure(self):
547547 with self .assertRaises (ValueError ):
548548 self ._list_zones_helper (data_pb2 .Zone .EMERGENCY_MAINENANCE )
549549
550+ def test_list_clusters (self ):
551+ from gcloud .bigtable ._generated import (
552+ bigtable_cluster_data_pb2 as data_pb2 )
553+ from gcloud .bigtable ._generated import (
554+ bigtable_cluster_service_messages_pb2 as messages_pb2 )
555+
556+ credentials = _Credentials ()
557+ project = 'PROJECT'
558+ timeout_seconds = 8004
559+ client = self ._makeOne (project = project , credentials = credentials ,
560+ admin = True , timeout_seconds = timeout_seconds )
561+
562+ # Create request_pb
563+ request_pb = messages_pb2 .ListClustersRequest (
564+ name = 'projects/' + project ,
565+ )
566+
567+ # Create response_pb
568+ zone = 'foo'
569+ failed_zone = 'bar'
570+ cluster_id1 = 'cluster-id1'
571+ cluster_id2 = 'cluster-id2'
572+ cluster_name1 = ('projects/' + project + '/zones/' + zone +
573+ '/clusters/' + cluster_id1 )
574+ cluster_name2 = ('projects/' + project + '/zones/' + zone +
575+ '/clusters/' + cluster_id2 )
576+ response_pb = messages_pb2 .ListClustersResponse (
577+ failed_zones = [
578+ data_pb2 .Zone (display_name = failed_zone ),
579+ ],
580+ clusters = [
581+ data_pb2 .Cluster (
582+ name = cluster_name1 ,
583+ display_name = cluster_name1 ,
584+ serve_nodes = 3 ,
585+ ),
586+ data_pb2 .Cluster (
587+ name = cluster_name2 ,
588+ display_name = cluster_name2 ,
589+ serve_nodes = 3 ,
590+ ),
591+ ],
592+ )
593+
594+ # Patch the stub used by the API method.
595+ client ._cluster_stub_internal = stub = _FakeStub (response_pb )
596+
597+ # Create expected_result.
598+ failed_zones = [failed_zone ]
599+ clusters = [
600+ client .cluster (zone , cluster_id1 ),
601+ client .cluster (zone , cluster_id2 ),
602+ ]
603+ expected_result = (clusters , failed_zones )
604+
605+ # Perform the method and check the result.
606+ result = client .list_clusters ()
607+ self .assertEqual (result , expected_result )
608+ self .assertEqual (stub .method_calls , [(
609+ 'ListClusters' ,
610+ (request_pb , timeout_seconds ),
611+ {},
612+ )])
613+
550614
551615class _Credentials (object ):
552616
0 commit comments