A collection of Pytest-based tests for Charm Integration Testing, focusing on validating the deployment and interoperability of charms.
Python dependencies are managed through poetry.
pipx install poetry==2.0
poetry installSee CONTRIBUTING.md for more information about development best practices.
./scripts/run-test-suite.sh \
--model {juju_model} \
--requirer {application}:{endpoint} \
--provider {application}:{endpoint}The following environment variables can be set for specific test scenarios:
UV_FILE: Path to a pre-downloadeduvbinary (will be used when injecting validators, otherwise will be downloaded)UBUNTU_PRO_TOKEN: Ubuntu Pro token (required for testing canonical-livepatch-server charms)KUBECONFIG_<cloud_name>: Path to kubeconfig for a Kubernetes cloud registered in Juju. One variable per K8s cloud, where hyphens in the cloud name are replaced with underscores (e.g.KUBECONFIG_microk8s=/home/user/.kube/microk8s.yaml,KUBECONFIG_local_k8s=/home/user/.kube/local-k8s.yaml). Replaces the former singleKUBECONFIGvariable.
Run the documentation locally from the docs directory:
make runFor the current local test execution flow (including scheduler states and
Juju options like --juju-cloud, --juju-controller, and
--juju-model-config), see
docs/how-to/run-and-debug-tests-locally.rst.
See CONTRIBUTING.md for more information about the documentation setup.