
Product
Introducing Socket Fix for Safe, Automated Dependency Upgrades
Automatically fix and test dependency updates with socket fix—a new CLI tool that turns CVE alerts into safe, automated upgrades.
.. image:: https://img.shields.io/pypi/v/pytest-venv.svg :target: https://pypi.python.org/pypi/pytest-venv
.. image:: https://github.com/mmerickel/pytest-venv/actions/workflows/ci-tests.yml/badge.svg?branch=main :target: https://github.com/mmerickel/pytest-venv/actions/workflows/ci-tests.yml?query=branch%3Amain
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.
.. code-block:: python
import os
def test_it(venv):
venv.install('pyramid', upgrade=True)
subprocess.check_call(
[os.path.join(venv.bin, 'pserve'), 'development.ini'],
)
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.
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.
Depend directly on pytest
.
See https://github.com/mmerickel/pytest-venv/pull/2
Add support for Python 3.6, 3.7, and 3.8. See https://github.com/mmerickel/pytest-venv/pull/2
Add VirtualEnvironment.get_version
for querying versions from
installed packages in the virtual environment.
Support custom python interpreter paths via
VirtualEnvironment.create(python=...)
.
FAQs
py.test fixture for creating a virtual environment
We found that pytest-venv demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Automatically fix and test dependency updates with socket fix—a new CLI tool that turns CVE alerts into safe, automated upgrades.
Security News
CISA denies CVE funding issues amid backlash over a new CVE foundation formed by board members, raising concerns about transparency and program governance.
Product
We’re excited to announce a powerful new capability in Socket: historical data and enhanced analytics.