52 / 65 · 14 API Testing Fundamentals · gRPC Fundamentals← prev⊞ allnext →☰ Read as one page
7.5Testing gRPC with Python
import grpc
import user_pb2
import user_pb2_grpc
@pytest.fixture(scope="session")
def grpc_channel():
channel = grpc.insecure_channel("localhost:50051")
yield channel
channel.close()
@pytest.fixture
def user_service(grpc_channel):
return user_pb2_grpc.UserServiceStub(grpc_channel)
def test_get_user(user_service):
request = user_pb2.GetUserRequest(id="123")
response = user_service.GetUser(request)
assert response.name == "Alice"
assert response.email == "alice@test.com"
def test_get_nonexistent_user(user_service):
request = user_pb2.GetUserRequest(id="nonexistent")
with pytest.raises(grpc.RpcError) as exc_info:
user_service.GetUser(request)
assert exc_info.value.code() == grpc.StatusCode.NOT_FOUND
def test_create_user(user_service):
request = user_pb2.CreateUserRequest(
name="New User",
email="new@test.com",
role="viewer"
)
response = user_service.CreateUser(request)
assert response.id != ""
assert response.name == "New User"