Skip to main content

Kubernetes test support with KIND for pytest

Project description

pytest-kind

PyPI PyPI - Python Version

Test your Python Kubernetes app/operator end-to-end with kind and pytest.

pytest-kind is a plugin for pytest which provides the kind_cluster fixture. The fixture will install kind, create a cluster, and provide convenience functionality such as port forwarding.

Usage

Install pytest-kind via pip or via poetry, e.g.:

poetry add --dev pytest-kind

Write your pytest functions and use the provided kind_cluster fixture, e.g.:

def test_kubernetes_version(kind_cluster):
    assert kind_cluster.api.version == ('1', '15')

To load your custom Docker image and apply deployment manifests:

from pykube import Pod

def test_myapp(kind_cluster):
    kind_cluster.load_docker_image("myapp")
    kind_cluster.kubectl("apply", "-f", "deployment.yaml")
    kind_cluster.kubectl("rollout", "status", "deployment/myapp")

    # using Pykube to query pods
    for pod in Pod.objects(kind_cluster.api).filter(selector="app=myapp"):
        assert "Sucessfully started" in pod.logs()

    with kind_cluster.port_forward("service/myapp", 80) as port:
        r = requests.get(f"http://localhost:{port}/hello/world")
        r.raise_for_status()
        assert r.text == "Hello world!"

See the examples directory for sample projects.

Pytest Options

The kind cluster name can be set via the --cluster-name CLI option.

The kind cluster is deleted after each pytest session, you can keep the cluster by passing --keep-cluster to pytest.

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

pytest-kind-0.5.0.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

pytest_kind-0.5.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file pytest-kind-0.5.0.tar.gz.

File metadata

  • Download URL: pytest-kind-0.5.0.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Linux/4.15.0-58-generic

File hashes

Hashes for pytest-kind-0.5.0.tar.gz
Algorithm Hash digest
SHA256 bd27e38b2f9d1568e56791cd07b546ab53c883fc6ad28e4140ac48f176456364
MD5 d80e71116355f46ba4c8366055e3b4cb
BLAKE2b-256 74df86bf34ce4ece47152db375332d7066f68ed42b5b9516d3b7e9036a740843

See more details on using hashes here.

File details

Details for the file pytest_kind-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: pytest_kind-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Linux/4.15.0-58-generic

File hashes

Hashes for pytest_kind-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3adbc0ca0a51b3886344a675d3b5ec56f1bde30b2c8254bc3cef9add1a86852f
MD5 e7ac1d91141c56dd98e70ac860fae203
BLAKE2b-256 c3231896bdd5504b514fd62dfda230806f8ec871d48fc9fc0c8b4ba268e9f6f3

See more details on using hashes here.

Supported by

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