🌐 AI搜索 & 代理 主页
Skip to content

Commit fa39b0e

Browse files
fix: allow logs to propagate upstream for caplog testing (#1374)
Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent c364b15 commit fa39b0e

File tree

5 files changed

+67
-26
lines changed

5 files changed

+67
-26
lines changed

tests/unit/pubsub_v1/conftest.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
import logging
1516
import pytest
1617

1718
from opentelemetry.sdk.trace import TracerProvider
@@ -43,3 +44,19 @@ def span_exporter():
4344
provider = trace.get_tracer_provider()
4445
provider.add_span_processor(processor)
4546
yield exporter
47+
48+
49+
@pytest.fixture()
50+
def modify_google_logger_propagation():
51+
"""
52+
Allow propagation of logs to the root logger for tests
53+
that depend on the caplog fixture. Restore the default
54+
propagation setting after the test finishes.
55+
"""
56+
logger = logging.getLogger("google")
57+
original_propagate = logger.propagate
58+
logger.propagate = True
59+
try:
60+
yield
61+
finally:
62+
logger.propagate = original_propagate

tests/unit/pubsub_v1/subscriber/test_heartbeater.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
import pytest
2929

3030

31-
def test_heartbeat_inactive_manager_active_rpc(caplog):
31+
def test_heartbeat_inactive_manager_active_rpc(
32+
caplog, modify_google_logger_propagation
33+
):
3234
caplog.set_level(logging.DEBUG)
3335

3436
manager = mock.create_autospec(
@@ -46,7 +48,10 @@ def test_heartbeat_inactive_manager_active_rpc(caplog):
4648
assert "exiting" in caplog.text
4749

4850

49-
def test_heartbeat_inactive_manager_inactive_rpc(caplog):
51+
def test_heartbeat_inactive_manager_inactive_rpc(
52+
caplog,
53+
modify_google_logger_propagation,
54+
):
5055
caplog.set_level(logging.DEBUG)
5156

5257
manager = mock.create_autospec(
@@ -64,7 +69,7 @@ def test_heartbeat_inactive_manager_inactive_rpc(caplog):
6469
assert "exiting" in caplog.text
6570

6671

67-
def test_heartbeat_stopped(caplog):
72+
def test_heartbeat_stopped(caplog, modify_google_logger_propagation):
6873
caplog.set_level(logging.DEBUG)
6974
manager = mock.create_autospec(
7075
streaming_pull_manager.StreamingPullManager, instance=True

tests/unit/pubsub_v1/subscriber/test_leaser.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def test_add_and_remove():
5353
assert leaser_.bytes == 25
5454

5555

56-
def test_add_already_managed(caplog):
56+
def test_add_already_managed(caplog, modify_google_logger_propagation):
5757
caplog.set_level(logging.DEBUG)
5858

5959
leaser_ = leaser.Leaser(mock.sentinel.manager)
@@ -64,7 +64,7 @@ def test_add_already_managed(caplog):
6464
assert "already lease managed" in caplog.text
6565

6666

67-
def test_remove_not_managed(caplog):
67+
def test_remove_not_managed(caplog, modify_google_logger_propagation):
6868
caplog.set_level(logging.DEBUG)
6969

7070
leaser_ = leaser.Leaser(mock.sentinel.manager)
@@ -74,7 +74,7 @@ def test_remove_not_managed(caplog):
7474
assert "not managed" in caplog.text
7575

7676

77-
def test_remove_negative_bytes(caplog):
77+
def test_remove_negative_bytes(caplog, modify_google_logger_propagation):
7878
caplog.set_level(logging.DEBUG)
7979

8080
leaser_ = leaser.Leaser(mock.sentinel.manager)
@@ -98,7 +98,7 @@ def create_manager(flow_control=types.FlowControl()):
9898
return manager
9999

100100

101-
def test_maintain_leases_inactive_manager(caplog):
101+
def test_maintain_leases_inactive_manager(caplog, modify_google_logger_propagation):
102102
caplog.set_level(logging.DEBUG)
103103
manager = create_manager()
104104
manager.is_active = False
@@ -117,7 +117,7 @@ def test_maintain_leases_inactive_manager(caplog):
117117
assert "exiting" in caplog.text
118118

119119

120-
def test_maintain_leases_stopped(caplog):
120+
def test_maintain_leases_stopped(caplog, modify_google_logger_propagation):
121121
caplog.set_level(logging.DEBUG)
122122
manager = create_manager()
123123

tests/unit/pubsub_v1/subscriber/test_messages_on_hold.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def test_ordered_messages_one_key():
140140
assert moh.size == 0
141141

142142

143-
def test_ordered_messages_drop_duplicate_keys(caplog):
143+
def test_ordered_messages_drop_duplicate_keys(caplog, modify_google_logger_propagation):
144144
moh = messages_on_hold.MessagesOnHold()
145145

146146
msg1 = make_message(ack_id="ack1", ordering_key="key1")
@@ -377,7 +377,7 @@ def test_ordered_and_unordered_messages_interleaved():
377377
assert moh.size == 0
378378

379379

380-
def test_cleanup_nonexistent_key(caplog):
380+
def test_cleanup_nonexistent_key(caplog, modify_google_logger_propagation):
381381
moh = messages_on_hold.MessagesOnHold()
382382
moh._clean_up_ordering_key("non-existent-key")
383383
assert (
@@ -386,7 +386,7 @@ def test_cleanup_nonexistent_key(caplog):
386386
)
387387

388388

389-
def test_cleanup_key_with_messages(caplog):
389+
def test_cleanup_key_with_messages(caplog, modify_google_logger_propagation):
390390
moh = messages_on_hold.MessagesOnHold()
391391

392392
# Put message with "key1".

tests/unit/pubsub_v1/subscriber/test_streaming_pull_manager.py

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,9 @@ def test__maybe_release_messages_below_overload():
603603
assert call_args[1].ack_id in ("ack_foo", "ack_bar")
604604

605605

606-
def test__maybe_release_messages_negative_on_hold_bytes_warning(caplog):
606+
def test__maybe_release_messages_negative_on_hold_bytes_warning(
607+
caplog, modify_google_logger_propagation
608+
):
607609
manager = make_manager(
608610
flow_control=types.FlowControl(max_messages=10, max_bytes=1000)
609611
)
@@ -924,7 +926,7 @@ def test_send_unary_modack_exactly_once_disabled_with_futures():
924926
assert future3.result() == subscriber_exceptions.AcknowledgeStatus.SUCCESS
925927

926928

927-
def test_send_unary_ack_api_call_error(caplog):
929+
def test_send_unary_ack_api_call_error(caplog, modify_google_logger_propagation):
928930
caplog.set_level(logging.DEBUG)
929931

930932
manager = make_manager()
@@ -945,7 +947,7 @@ def test_send_unary_ack_api_call_error(caplog):
945947
assert "The front fell off" in caplog.text
946948

947949

948-
def test_send_unary_modack_api_call_error(caplog):
950+
def test_send_unary_modack_api_call_error(caplog, modify_google_logger_propagation):
949951
caplog.set_level(logging.DEBUG)
950952

951953
manager = make_manager()
@@ -978,7 +980,9 @@ def test_send_unary_modack_api_call_error(caplog):
978980
assert "The front fell off" in caplog.text
979981

980982

981-
def test_send_unary_ack_retry_error_exactly_once_disabled_no_futures(caplog):
983+
def test_send_unary_ack_retry_error_exactly_once_disabled_no_futures(
984+
caplog, modify_google_logger_propagation
985+
):
982986
caplog.set_level(logging.DEBUG)
983987

984988
manager, _, _, _, _, _ = make_running_manager()
@@ -1014,7 +1018,9 @@ def test_send_unary_ack_retry_error_exactly_once_disabled_no_futures(caplog):
10141018
assert "signaled streaming pull manager shutdown" in caplog.text
10151019

10161020

1017-
def test_send_unary_ack_retry_error_exactly_once_disabled_with_futures(caplog):
1021+
def test_send_unary_ack_retry_error_exactly_once_disabled_with_futures(
1022+
caplog, modify_google_logger_propagation
1023+
):
10181024
caplog.set_level(logging.DEBUG)
10191025

10201026
manager, _, _, _, _, _ = make_running_manager()
@@ -1054,7 +1060,9 @@ def test_send_unary_ack_retry_error_exactly_once_disabled_with_futures(caplog):
10541060
assert future2.result() == subscriber_exceptions.AcknowledgeStatus.SUCCESS
10551061

10561062

1057-
def test_send_unary_ack_retry_error_exactly_once_enabled_no_futures(caplog):
1063+
def test_send_unary_ack_retry_error_exactly_once_enabled_no_futures(
1064+
caplog, modify_google_logger_propagation
1065+
):
10581066
caplog.set_level(logging.DEBUG)
10591067

10601068
manager, _, _, _, _, _ = make_running_manager()
@@ -1090,7 +1098,9 @@ def test_send_unary_ack_retry_error_exactly_once_enabled_no_futures(caplog):
10901098
assert "signaled streaming pull manager shutdown" in caplog.text
10911099

10921100

1093-
def test_send_unary_ack_retry_error_exactly_once_enabled_with_futures(caplog):
1101+
def test_send_unary_ack_retry_error_exactly_once_enabled_with_futures(
1102+
caplog, modify_google_logger_propagation
1103+
):
10941104
caplog.set_level(logging.DEBUG)
10951105

10961106
manager, _, _, _, _, _ = make_running_manager()
@@ -1136,7 +1146,9 @@ def test_send_unary_ack_retry_error_exactly_once_enabled_with_futures(caplog):
11361146
)
11371147

11381148

1139-
def test_send_unary_modack_retry_error_exactly_once_disabled_no_future(caplog):
1149+
def test_send_unary_modack_retry_error_exactly_once_disabled_no_future(
1150+
caplog, modify_google_logger_propagation
1151+
):
11401152
caplog.set_level(logging.DEBUG)
11411153

11421154
manager, _, _, _, _, _ = make_running_manager()
@@ -1162,7 +1174,7 @@ def test_send_unary_modack_retry_error_exactly_once_disabled_no_future(caplog):
11621174

11631175

11641176
def test_send_unary_modack_retry_error_exactly_once_disabled_with_futures(
1165-
caplog,
1177+
caplog, modify_google_logger_propagation
11661178
):
11671179
caplog.set_level(logging.DEBUG)
11681180

@@ -1191,7 +1203,7 @@ def test_send_unary_modack_retry_error_exactly_once_disabled_with_futures(
11911203

11921204

11931205
def test_send_unary_modack_retry_error_exactly_once_enabled_no_futures(
1194-
caplog,
1206+
caplog, modify_google_logger_propagation
11951207
):
11961208
caplog.set_level(logging.DEBUG)
11971209

@@ -1218,7 +1230,7 @@ def test_send_unary_modack_retry_error_exactly_once_enabled_no_futures(
12181230

12191231

12201232
def test_send_unary_modack_retry_error_exactly_once_enabled_with_futures(
1221-
caplog,
1233+
caplog, modify_google_logger_propagation
12221234
):
12231235
caplog.set_level(logging.DEBUG)
12241236

@@ -1271,7 +1283,9 @@ def test_heartbeat_inactive():
12711283
assert not result
12721284

12731285

1274-
def test_heartbeat_stream_ack_deadline_seconds(caplog):
1286+
def test_heartbeat_stream_ack_deadline_seconds(
1287+
caplog, modify_google_logger_propagation
1288+
):
12751289
caplog.set_level(logging.DEBUG)
12761290
manager = make_manager()
12771291
manager._rpc = mock.create_autospec(bidi.BidiRpc, instance=True)
@@ -1922,7 +1936,7 @@ def test__on_response_with_leaser_overload():
19221936
assert msg.message_id in ("2", "3")
19231937

19241938

1925-
def test__on_response_none_data(caplog):
1939+
def test__on_response_none_data(caplog, modify_google_logger_propagation):
19261940
caplog.set_level(logging.DEBUG)
19271941

19281942
manager, _, dispatcher, leaser, _, scheduler = make_running_manager()
@@ -2087,7 +2101,10 @@ def test__on_response_disable_exactly_once():
20872101
assert manager._stream_ack_deadline == 60
20882102

20892103

2090-
def test__on_response_exactly_once_immediate_modacks_fail(caplog):
2104+
def test__on_response_exactly_once_immediate_modacks_fail(
2105+
caplog,
2106+
modify_google_logger_propagation,
2107+
):
20912108
manager, _, dispatcher, leaser, _, scheduler = make_running_manager()
20922109
manager._callback = mock.sentinel.callback
20932110

@@ -2159,7 +2176,9 @@ def complete_futures_with_error(*args, **kwargs):
21592176
assert manager.load == 0.001
21602177

21612178

2162-
def test__on_response_exactly_once_immediate_modacks_fail_non_invalid(caplog):
2179+
def test__on_response_exactly_once_immediate_modacks_fail_non_invalid(
2180+
caplog, modify_google_logger_propagation
2181+
):
21632182
manager, _, dispatcher, leaser, _, scheduler = make_running_manager()
21642183
manager._callback = mock.sentinel.callback
21652184

0 commit comments

Comments
 (0)