Modern QA2026Testing gRPC with Python — tiles
Log inJoin
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"