Skip to main content

Utilities for Python-driven integration tests at LINBIT

Project description

lbpytest

PyPI

Utilities for Python-driven integration tests at LINBIT.

Installation

pip install lbpytest

Usage

ControlMaster

from lbpytest.controlmaster import SSH
from io import StringIO
import subprocess
import sys

try:
    ssh = SSH("myhost.example.org")
except subprocess.CalledProcessError as e:
    print(e.stderr.decode('utf-8'), file=sys.stderr)
    raise e

# Run command using the hosts stdin/stdout/stderr
ssh.run("echo 'Hello, World!'")

# Save command output
output = StringIO()
ssh.run("echo 'Hello, World!'", stdout=output)
print(output.getvalue()) # prints Hello, World!

ssh.close()

Logscan

See test_logscan.py and test_logscan_ssh.py.

Testing

The unit tests for this project can be run using pytest:

$ pytest src/lbpytest

Note that for the ControlMaster tests, a --host option is required. This should specify the IP address or hostname of an SSH server to use for the test.

Type Checking

This library uses type annotations. The mypy tool can be used to verify these annotations:

$ mypy src/lbpytest

License

Apache License 2.0

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

lbpytest-0.3.0.tar.gz (15.5 kB view hashes)

Uploaded Source

Built Distribution

lbpytest-0.3.0-py3-none-any.whl (17.3 kB view hashes)

Uploaded Python 3

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