The Charm Tech team is proud to announce the release of Jubilant 1.0.0!
Jubilant, as we like to say, is the joyful library for writing charm integration tests. It wraps the Juju CLI, providing methods that map 1:1 to Juju CLI commands, but with a type-annotated, Pythonic interface.
You should consider switching to Jubilant if your charm’s integration tests currently use pytest-operator (and they probably do). Jubilant has an API you’ll pick up quickly, and it avoids some of the pain points of python-libjuju, such as websocket failures and having to use async
. Read our design goals.
The 1.0.0 release has two minor breaking changes (see the release notes) which will only affect you if you’re using config
or model_config
with None values to reset keys, or if you’re using Juju.offer
. The 1.x API is now considered stable, and we will try our best to avoid making breaking changes to the API after this point.
This release also adds a few small features:
- A much-requested
jubilant.all_agents_idle
helper function. - The addition of a
bind
argument toJuju.deploy
. - The
jubilant.temp_model
helper can now take acontroller
argument.
We’ve put up a nice documentation website, complete with a guide for how to migrate from pytest-operator.
If you have questions, feedback, or feature suggestions, please talk to us on the “Charm Development” channel on Matrix, or open an issue.