✨ Features
- Add a
TestClient
that allows writing unit tests for consumer functions
import pytest
from kaflow import FromValue, Kaflow, Message
from kaflow.testclient import TestClient
app = Kaflow(client_id="test", brokers=["localhost:9092"])
class RandomDependency:
def __init__(self, random: str = "random") -> None:
self.random = random
@app.consume(topic="test_topic", sink_topics=["test_topic_2"])
async def consume_test_topic(
value: FromValue[bytes], dependency: RandomDependency
) -> Message:
print("Value", value)
print("Override dependency:", dependency.random)
return Message(value=b"Hello Unit Test!")
@pytest.fixture
def test_client() -> TestClient:
client = TestClient(app=app)
with app.dependency_overrides:
app.dependency_overrides[RandomDependency] = lambda: RandomDependency(
random="not so random"
)
yield client
def test_consume_test_topic(test_client: TestClient) -> None:
message = test_client.publish(
topic="test_topic",
value=b"Hello World!",
)
assert message.value == b"Hello Unit Test!"