Skip to main content

py.test fixture for creating a virtual environment

Project description

https://img.shields.io/pypi/v/pytest-venv.svg https://github.com/mmerickel/pytest-venv/actions/workflows/ci-tests.yml/badge.svg?branch=main

pytest-venv is a simple pytest plugin that exposes a venv fixture. The fixture is used to create a new virtual environment which can be used to install packages and run commands inside tests.

Usage

import os

def test_it(venv):
    venv.install('pyramid', upgrade=True)
    subprocess.check_call(
        [os.path.join(venv.bin, 'pserve'), 'development.ini'],
    )

API

The venv fixture is an instance of pytest_venv.VirtualEnvironment(path) which exposes the following API:

path

The path to the virtualenv directory.

bin

The path to the bin / Scripts directory.

python

The path to the python executable in the virtualenv.

create(system_site_packages=False, python=None, *, extra_args=None)

Create a virtualenv. This is called automatically by the venv fixture. If python is None then the virtual environment will be created using the same executable as the active runtime.

install(pkg_name, editable=False, upgrade=False, *, extra_args=None)

Use pip to install a package into the virtualenv. pkg_name may be a path to a package on disk.

get_version(pkg_name, *, raises=True)

Returns a packaging.version.Version object which is sortable and convertable to a string.

0.3 (2023-11-22)

  • Drop Python 2.7, 3.4, 3.5, 3.6.

  • Add support for Python 3.9, 3.10, 3.11, 3.12.

  • No longer expect pkg_resources to be available in the created virtualenv.

  • No longer depend on setuptools.

  • Add extra_args to install() and create() to pass extra arguments to the underlying commands.

  • Add raises=False option to get_version() to avoid raising an exception if a package is not installed.

0.2.1 (2020-08-04)

0.2 (2016-11-27)

  • Add VirtualEnvironment.get_version for querying versions from installed packages in the virtual environment.

  • Support custom python interpreter paths via VirtualEnvironment.create(python=...).

0.1.1 (2016-11-27)

  • Ensure the virtual environment is started with the same Python executable as the current process.

0.1 (2016-11-27)

  • Initial release.

Download files

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

Source Distribution

pytest-venv-0.3.tar.gz (8.6 kB view hashes)

Uploaded Source

Built Distribution

pytest_venv-0.3-py3-none-any.whl (4.4 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