Skip to main content

A py.test plugin providing access to vagrant.

Project description

PyPi Waf Python Tests Black Flake8

pytest-vagrant provides a py.test fixture for working with vagrant in pytest.

Installation

To install pytest-vagrant:

pip install pytest-vagrant

Usage

To make it easy to use in with pytest the Vagrant object can be injected into a test function by using the vagrant fixture.

Example:

def test_run_fail(vagrant):
    machine = vagrant.from_box(
        box="hashicorp/bionic64", name="pytest_vagrant", reset=False)

    with machine.ssh() as ssh:
        ssh.run("some_command")

The vagrant argument is an instance of Vagrant and represents the vagrant environment on the machine running the test code.

Relase new version

  1. Edit NEWS.rst and wscript (set correct VERSION)

  2. Run

    ./waf upload

Source code

The main functionality is found in src/vagrant.py and the corresponding unit test is in test/test_vagrant.py if you want to play/modify/fix the code this would, in most cases, be the place to start.

Developer Notes

We try to make our projects as independent as possible of a local system setup. For example with our native code (C/C++) we compile as much as possible from source, since this makes us independent of what is currently installed (libraries etc.) on a specific machine.

To “fetch” sources we use Waf (https://waf.io/) augmented with dependency resolution capabilities: https://github.com/steinwurf/waf

The goal is to enable a work-flow where running:

./waf configure
./waf build --run_tests

Configures, builds and runs any available tests for a given project, such that you as a developer can start hacking at the code.

For Python project this is a bit unconventional, but we think it works well.

Tests

The tests will run automatically by passing --run_tests to waf:

./waf --run_tests

This follows what seems to be “best practice” advise, namely to install the package in editable mode in a virtualenv.

Notes

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pytest_vagrant-2.1.0-py2.py3-none-any.whl (13.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytest_vagrant-2.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pytest_vagrant-2.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.10

File hashes

Hashes for pytest_vagrant-2.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4406068838f03b5869db4f9246cfb503bc7a7042a2fc85a0eed9f90b3ebf5bfb
MD5 03fc69a8a9744f6481c6601b6ecf17c4
BLAKE2b-256 8004cde445a7b567c0319345a2e560f92debc3a47ee4ba6c28e626034215ce9c

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