@@ -207,7 +207,30 @@ def test_topic_publish_hit(self):
207207 MSGID = 'DEADBEEF'
208208 MESSAGE = {'data' : B64 , 'attributes' : {}}
209209 response = _PublishResponsePB ([MSGID ])
210- gax_api = _GAXPublisherAPI (_publish_response = response )
210+ event = _Event (response )
211+ event .wait () # already received result
212+ gax_api = _GAXPublisherAPI (_publish_response = event )
213+ api = self ._makeOne (gax_api )
214+
215+ resource = api .topic_publish (self .TOPIC_PATH , [MESSAGE ])
216+
217+ self .assertEqual (resource , [MSGID ])
218+ topic_path , message_pbs , options = gax_api ._publish_called_with
219+ self .assertEqual (topic_path , self .TOPIC_PATH )
220+ message_pb , = message_pbs
221+ self .assertEqual (message_pb .data , B64 )
222+ self .assertEqual (message_pb .attributes , {})
223+ self .assertEqual (options , None )
224+
225+ def test_topic_publish_hit_with_wait (self ):
226+ import base64
227+ PAYLOAD = b'This is the message text'
228+ B64 = base64 .b64encode (PAYLOAD ).decode ('ascii' )
229+ MSGID = 'DEADBEEF'
230+ MESSAGE = {'data' : B64 , 'attributes' : {}}
231+ response = _PublishResponsePB ([MSGID ])
232+ event = _Event (response )
233+ gax_api = _GAXPublisherAPI (_publish_response = event )
211234 api = self ._makeOne (gax_api )
212235
213236 resource = api .topic_publish (self .TOPIC_PATH , [MESSAGE ])
@@ -897,12 +920,24 @@ def __init__(self, items, page_token):
897920 self .page_token = page_token
898921
899922 def next (self ):
900- if self ._items is None :
901- raise StopIteration ()
902923 items , self ._items = self ._items , None
903924 return items
904925
905926
927+ class _Event (object ):
928+
929+ result = None
930+
931+ def __init__ (self , result ):
932+ self ._result = result
933+
934+ def is_set (self ):
935+ return self .result is not None
936+
937+ def wait (self , * _ ):
938+ self .result = self ._result
939+
940+
906941class _TopicPB (object ):
907942
908943 def __init__ (self , name ):
0 commit comments