@@ -451,6 +451,57 @@ def test_delete(self):
451451 {},
452452 )])
453453
454+ def test_undelete (self ):
455+ from gcloud ._testing import _Monkey
456+ from gcloud .bigtable ._generated import (
457+ bigtable_cluster_service_messages_pb2 as messages_pb2 )
458+ from gcloud .bigtable ._generated import operations_pb2
459+ from gcloud .bigtable ._testing import _FakeStub
460+ from gcloud .bigtable import cluster as MUT
461+
462+ project = 'PROJECT'
463+ zone = 'zone'
464+ cluster_id = 'cluster-id'
465+ timeout_seconds = 78
466+
467+ client = _Client (project , timeout_seconds = timeout_seconds )
468+ cluster = self ._makeOne (zone , cluster_id , client )
469+
470+ # Create request_pb
471+ cluster_name = ('projects/' + project + '/zones/' + zone +
472+ '/clusters/' + cluster_id )
473+ request_pb = messages_pb2 .UndeleteClusterRequest (name = cluster_name )
474+
475+ # Create response_pb
476+ response_pb = operations_pb2 .Operation ()
477+
478+ # Patch the stub used by the API method.
479+ client ._cluster_stub = stub = _FakeStub (response_pb )
480+
481+ # Create expected_result.
482+ op_id = 5678
483+ op_begin = object ()
484+ expected_result = MUT .Operation ('undelete' , op_id , op_begin )
485+
486+ # Create the mocks.
487+ process_operation_called = []
488+
489+ def mock_process_operation (operation_pb ):
490+ process_operation_called .append (operation_pb )
491+ return op_id , op_begin
492+
493+ # Perform the method and check the result.
494+ with _Monkey (MUT , _process_operation = mock_process_operation ):
495+ result = cluster .undelete ()
496+
497+ self .assertEqual (result , expected_result )
498+ self .assertEqual (stub .method_calls , [(
499+ 'UndeleteCluster' ,
500+ (request_pb , timeout_seconds ),
501+ {},
502+ )])
503+ self .assertEqual (process_operation_called , [response_pb ])
504+
454505 def _list_tables_helper (self , table_id , table_name = None ):
455506 from gcloud .bigtable ._generated import (
456507 bigtable_table_data_pb2 as table_data_pb2 )
@@ -651,6 +702,28 @@ def test_with_create_cluster_metadata(self):
651702 result = self ._callFUT (any_val )
652703 self .assertEqual (result , metadata )
653704
705+ def test_with_undelete_cluster_metadata (self ):
706+ from gcloud .bigtable ._generated import any_pb2
707+ from gcloud .bigtable ._generated import (
708+ bigtable_cluster_data_pb2 as data_pb2 )
709+ from gcloud .bigtable ._generated import (
710+ bigtable_cluster_service_messages_pb2 as messages_pb2 )
711+ from gcloud .bigtable ._generated .timestamp_pb2 import Timestamp
712+
713+ type_url = ('type.googleapis.com/' +
714+ messages_pb2 ._UNDELETECLUSTERMETADATA .full_name )
715+ metadata = messages_pb2 .UndeleteClusterMetadata (
716+ request_time = Timestamp (seconds = 1 , nanos = 1234 ),
717+ finish_time = Timestamp (seconds = 10 , nanos = 891011 ),
718+ )
719+
720+ any_val = any_pb2 .Any (
721+ type_url = type_url ,
722+ value = metadata .SerializeToString (),
723+ )
724+ result = self ._callFUT (any_val )
725+ self .assertEqual (result , metadata )
726+
654727 def test_unknown_type_url (self ):
655728 from gcloud ._testing import _Monkey
656729 from gcloud .bigtable ._generated import any_pb2
0 commit comments