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.

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-venv-0.3.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

pytest_venv-0.3-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file pytest-venv-0.3.tar.gz.

File metadata

  • Download URL: pytest-venv-0.3.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for pytest-venv-0.3.tar.gz
Algorithm Hash digest
SHA256 b92087bebcb3782984116ca3723c7abdb2ab5e76a75ea9397f4a4c35a544fe18
MD5 c1ea20fe02d203f12c023fe2130d4f7d
BLAKE2b-256 14a374a456852035c9314d28efcb5bd7e20f7f4fc1070b4791768ed9ae3e889b

See more details on using hashes here.

File details

Details for the file pytest_venv-0.3-py3-none-any.whl.

File metadata

  • Download URL: pytest_venv-0.3-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for pytest_venv-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 af2961af62107baf85c076cf4cd2ae47a7f345f88cbed9fb04fb51b694b9674e
MD5 3fb88c06c9b6c44f4df585fdea7814e6
BLAKE2b-256 d32c681d81b1f339534620ac3cb37c80602613221e8bf8c47c7413c30ad20ab6

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