Skip to content

Commit e128488

Browse files
chore(bigtable): resolve pytest-asyncio test failures (#17347)
Adds an event loop fixture, to support latest version of pytest-asyncio
1 parent 0a3776e commit e128488

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Copyright 2026 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
import asyncio
16+
17+
import pytest
18+
19+
20+
@pytest.fixture(autouse=True)
21+
def provide_loop_to_sync_grpc_tests():
22+
"""
23+
GAPIC creates synchronous methods testing Asyncio transports.
24+
If no global loop exists, `grpc.aio` engine crashes during initialization.
25+
"""
26+
try:
27+
asyncio.get_running_loop()
28+
except RuntimeError:
29+
loop = asyncio.new_event_loop()
30+
asyncio.set_event_loop(loop)
31+
try:
32+
yield
33+
finally:
34+
loop.close()
35+
asyncio.set_event_loop(None)
36+
else:
37+
yield

0 commit comments

Comments
 (0)