Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
.. 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.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.