@@ -28,13 +28,13 @@ def wait_for_message(
2828 while now < timeout :
2929 if node :
3030 message = pubsub .get_sharded_message (
31- ignore_subscribe_messages = ignore_subscribe_messages , target_node = node
31+ ignore_subscribe_messages = ignore_subscribe_messages , target_node = node , timeout = 0.01
3232 )
3333 elif func :
34- message = func (ignore_subscribe_messages = ignore_subscribe_messages )
34+ message = func (ignore_subscribe_messages = ignore_subscribe_messages , timeout = 0.01 )
3535 else :
3636 message = pubsub .get_message (
37- ignore_subscribe_messages = ignore_subscribe_messages
37+ ignore_subscribe_messages = ignore_subscribe_messages , timeout = 0.01
3838 )
3939 if message is not None :
4040 return message
@@ -475,6 +475,16 @@ def test_published_message_to_channel(self, r):
475475 assert isinstance (message , dict )
476476 assert message == make_message ("message" , "foo" , "test message" )
477477
478+ async def test_published_message_to_channel_with_blocking_get_message (self , r ):
479+ pubsub = r .pubsub ()
480+ pubsub .subscribe ("foo" )
481+ assert wait_for_message (pubsub ) == make_message ("subscribe" , "foo" , 1 )
482+
483+ assert r .publish ("foo" , "test message" ) == 1
484+ message = pubsub .get_message (ignore_subscribe_messages = True )
485+ assert isinstance (message , dict )
486+ assert message == make_message ("message" , "foo" , "test message" )
487+
478488 @pytest .mark .onlynoncluster
479489 @skip_if_server_version_lt ("7.0.0" )
480490 def test_published_message_to_shard_channel (self , r ):
@@ -920,7 +930,7 @@ def test_get_message_with_timeout_returns_none(self, r):
920930 def test_get_message_not_subscribed_return_none (self , r ):
921931 p = r .pubsub ()
922932 assert p .subscribed is False
923- assert p .get_message () is None
933+ assert p .get_message (timeout = 0 ) is None
924934 assert p .get_message (timeout = 0.1 ) is None
925935 with patch .object (threading .Event , "wait" ) as mock :
926936 mock .return_value = False
@@ -931,7 +941,7 @@ def test_get_message_subscribe_during_waiting(self, r):
931941 p = r .pubsub ()
932942
933943 def poll (ps , expected_res ):
934- assert ps .get_message () is None
944+ assert ps .get_message (timeout = 0 ) is None
935945 message = ps .get_message (timeout = 1 )
936946 assert message == expected_res
937947
0 commit comments