How-to: Test CLI Behavior¶
Goal¶
Test output, exit codes, and return values.
Basic test¶
from sayer.testing import SayerTestClient
from myproject.main import app
def test_hello():
client = SayerTestClient(app=app)
result = client.invoke(["hello", "--name", "Ada"])
assert result.exit_code == 0
assert "Hello, Ada" in result.output
Return value assertions¶
result = client.invoke(["compute"], with_return_value=True)
assert result.return_value == {"ok": True}