6060from google .rpc import code_pb2
6161from google .rpc import error_details_pb2
6262
63+ _message_mock = mock .create_autospec (message .Message , instance = True )
64+ def create_mock_message (** kwargs ):
65+ msg = _message_mock .return_value
66+ for k , v in kwargs .items ():
67+ setattr (msg , k , v )
68+
69+ return msg
70+
6371
6472@pytest .mark .parametrize (
6573 "exception,expected_cls" ,
@@ -80,7 +88,7 @@ def test__wrap_as_exception(exception, expected_cls):
8088
8189
8290def test__wrap_callback_errors_no_error ():
83- msg = mock . create_autospec ( message . Message , instance = True )
91+ msg = create_mock_message ( )
8492 callback = mock .Mock ()
8593 on_callback_error = mock .Mock ()
8694
@@ -99,7 +107,7 @@ def test__wrap_callback_errors_no_error():
99107 ],
100108)
101109def test__wrap_callback_errors_error (callback_error ):
102- msg = mock . create_autospec ( message . Message , instance = True )
110+ msg = create_mock_message ( )
103111 callback = mock .Mock (side_effect = callback_error )
104112 on_callback_error = mock .Mock ()
105113
@@ -511,8 +519,8 @@ def test__maybe_release_messages_on_overload():
511519 manager = make_manager (
512520 flow_control = types .FlowControl (max_messages = 10 , max_bytes = 1000 )
513521 )
522+ msg = create_mock_message (ack_id = "ack" , size = 11 )
514523
515- msg = mock .create_autospec (message .Message , instance = True , ack_id = "ack" , size = 11 )
516524 manager ._messages_on_hold .put (msg )
517525 manager ._on_hold_bytes = msg .size
518526
@@ -539,9 +547,8 @@ def test_opentelemetry__maybe_release_messages_subscribe_scheduler_span(span_exp
539547 # max load is hit.
540548 _leaser = manager ._leaser = mock .create_autospec (leaser .Leaser )
541549 fake_leaser_add (_leaser , init_msg_count = 8 , assumed_msg_size = 10 )
542- msg = mock .create_autospec (
543- message .Message , instance = True , ack_id = "ack_foo" , size = 10
544- )
550+ msg = create_mock_message (ack_id = "ack_foo" , size = 10 )
551+
545552 msg .message_id = 3
546553 opentelemetry_data = SubscribeOpenTelemetry (msg )
547554 msg .opentelemetry_data = opentelemetry_data
@@ -611,7 +618,7 @@ def test__maybe_release_messages_negative_on_hold_bytes_warning(
611618 )
612619 manager ._callback = lambda msg : msg # pragma: NO COVER
613620
614- msg = mock . create_autospec ( message . Message , instance = True , ack_id = "ack" , size = 17 )
621+ msg = create_mock_message ( ack_id = "ack" , size = 17 )
615622 manager ._messages_on_hold .put (msg )
616623 manager ._on_hold_bytes = 5 # too low for some reason
617624
@@ -1633,8 +1640,7 @@ def test_close_nacks_internally_queued_messages():
16331640 def fake_nack (self ):
16341641 nacked_messages .append (self .data )
16351642
1636- MockMsg = functools .partial (mock .create_autospec , message .Message , instance = True )
1637- messages = [MockMsg (data = b"msg1" ), MockMsg (data = b"msg2" ), MockMsg (data = b"msg3" )]
1643+ messages = [create_message (data = b"msg1" ), create_message (data = b"msg2" ), create_message (data = b"msg3" )]
16381644 for msg in messages :
16391645 msg .nack = stdlib_types .MethodType (fake_nack , msg )
16401646
0 commit comments