Jubilant

Jubilant is a Python library that wraps the Juju CLI for use in charm integration tests. It provides methods that map 1:1 to Juju CLI commands, but with a type-annotated, Pythonic interface.

You should consider switching to Jubilant if your 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.

Jubilant is currently in pre-release or “beta” phase (see PyPI releases). Our intention is to release version 1.0.0 in May 2025.

The library provides:

In this documentation

Start here: a hands-on introduction to Jubilant, including how to write a charm integration test

Step-by-step guides covering key operations and common tasks

Technical information

Discussion and clarification of key topics

Releases

Jubilant releases are tracked on GitHub, and use semantic versioning. To get notified when there’s a new release, watch the Jubilant repository.

Project and community

Jubilant is free software and released under the Apache license, version 2.0.

The Jubilant project is sponsored by Canonical Ltd.