Skip to main content

Juju CLI wrapper for charm integration testing

Project description

Jubilant, the joyful library for integration-testing Juju charms

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.

It was written to supersede the use of pytest-operator and python-libjuju for charm integration tests. Python-libjuju in particular has a complex and confusing API, and its use of async is unnecessary for testing.

NOTE: Jubilant is in very early stages of development. This is pre-alpha code. Our intention is to release a 1.0.0 version early to mid 2025.

Design goals

  • Match the Juju CLI. We try to ensure methods, argument names, and response field names match the Juju CLI and its responses, with minor exceptions (such as "application" being shortened to "app" in Status fields).
  • Simple API. Higher-level operations will be in helpers and fixtures, not the main Juju class.
  • No async. This was a "feature" of python-libjuju that isn't desired for integration tests.
  • Support Juju 3 and 4. The Juju team is guaranteeing CLI arguments and --format=json responses won't change between Juju 3.x and 4.x. When Juju 5.x arrives and changes the CLI, we'll keep the Jubilant API simple and 1:1 with the 5.x CLI, but will consider adding a jubilant.compat layer to avoid tests have to manually work around differences between 4.x and 5.x.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jubilant-1.0.0b1.tar.gz (68.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jubilant-1.0.0b1-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file jubilant-1.0.0b1.tar.gz.

File metadata

  • Download URL: jubilant-1.0.0b1.tar.gz
  • Upload date:
  • Size: 68.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for jubilant-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 f1e68c0583ca4e421ae95c7408c2f5a71d348c29360cc89412c83973d4535445
MD5 42a7a8c3d57edc4c4fa0f8bb90b8caca
BLAKE2b-256 587309d3a27de8ac609e0530355499852cebdd8fe460af5b5f45e52585db3680

See more details on using hashes here.

File details

Details for the file jubilant-1.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: jubilant-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for jubilant-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 674bed08b7435cf6498d0bd97d35b4e950bc52bdd64f9f33d45b8d2898ba0dd1
MD5 82ab66db489344ed30e133833256cbd2
BLAKE2b-256 05f3f62f10a06611e3abb7486618de954ad04651c942b24ec295c0ee20cffe27

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page