A pipenv plugin for tox
Project description
tox-pipenv
==========
.. image:: https://img.shields.io/pypi/v/tox-pipenv.svg
:target: https://pypi-hypernode.com/pypi/tox-pipenv
.. image:: https://img.shields.io/travis/tox-dev/tox-pipenv.svg
:target: https://travis-ci.org/tox-dev/tox-pipenv
.. image:: https://codecov.io/gh/tox-dev/tox-pipenv/branch/master/graph/badge.svg
:target: https://codecov.io/gh/tox-dev/tox-pipenv
.. image:: https://pyup.io/repos/github/tox-dev/tox-pipenv/shield.svg
:target: https://pyup.io/repos/github/tox-dev/tox-pipenv/
:alt: Updates
.. image:: https://pyup.io/repos/github/tox-dev/tox-pipenv/python-3-shield.svg
:target: https://pyup.io/repos/github/tox-dev/tox-pipenv/
:alt: Python 3
A tox plugin to replace the default use of virtualenv with Pipenv.
This is a convenient way to retain your use of Pipenv, whilst testing multiple versions of Python.
Installation
------------
.. code-block:: bash
pip install tox-pipenv
Or,
.. code-block:: bash
pipenv install tox-pipenv
Creating virtual environments
-----------------------------
With this plugin, tox will use `pipenv --python {python binary}` as given to the tox interpreter for each python path.
If you already have virtual environments cached with tox, use the --recreate flag to recreate them with pipenv.
Note: tox will pass the --site-packages flag to pipenv if this is configured in your tox config.
The Pipfile will exist in .tox/{env}/Pipfile as well as Pipfile.lock
Installing requirements
-----------------------
The installation of requirements from your tox config will be passed to pipenv install for installation into the virtual
environment. This replaces the use of pip within tox.
``requirements.txt`` files will also be parsed by Pipenv and used for each test environment
Executing tests
---------------
Each of the commands in your testenv configuration will be passed to pipenv to execute within the pipenv virtual environment
Example tox.ini
---------------
This simple example will test against Python 2.7 and 3.6 using pytest to execute the tests.
```
[tox]
envlist = py27, py36
[testenv]
deps =
pytest
pytest-mock
commands = python -m pytest test/
```
Frequently asked questions
--------------------------
Where to install
~~~~~~~~~~~~~~~~
Tox-Pipenv should be installed in the same environment as Tox, whether that is in a virtualenvironment, system environment or user environment. Tox-Pipenv depends on
Tox 3.0 or newer.
Is user expected to create `Pipfile` and `Pipfile.lock` before executing `tox` with this plugin?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Yes, although if you are migrating from a requirements.txt to a Pipfile, you can use Pipenv to create the Pipfile for you.
Is `Pipfile.lock` expected to be under source control?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
According to `pipenv` documenation, `Pipfile.lock` is not recommended under source control if it is going to be used under multiple Python versions.
What is the role of `requirements.txt` file?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Often, `tox` users use `requirements.txt` which is then referenced from within `tox.ini` file as deps. Pipenv will automatically install any packages listed in
`requirements.txt` for each virtual environment that Tox creates.
Is `tox.ini` `deps` section really in control?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
No, this is a known limitation.
Authors
-------
* Anthony Shaw
* Omer Katz
Release notes
=============
1.6.0 (2018-07-04)
------------------
* Bugfix : Tox would fail when executed twice if usedevelop was set to True, reported by @ashwinvis #46
* Bugfix : Any additional dependencies specified in `deps` within tox.ini would be written to the root Pipfile. A temporary Pipfile is created
for each virtualenv now, which is a clone of the root Pipfile
1.5.0 (2018-07-03)
------------------
* Update : Update tox to 3.0.0
* Feature : Tox report now uses pipenv instead of pip freeze
* Bugfix : Fixed issue on newer versions of pipenv raising error "AttributeError: 'Project' object has no attribute 'pipfile_sources'" (#41)
1.4.1 (2018-03-15)
------------------
* Removed test virtualenv from package, meaning distribution was 18MB, should be 15Kb #38
1.4.0 (2018-03-08)
------------------
* Bugfix : Fixed error "LocalPath object has no attribute endswith"
* Bugfix : Fixed error "Cannot run tox for the first time with this plugin installed"
1.3.0 (2018-03-03)
------------------
* Bugfix : fixed issue when Pathlib.Path occured instead of string
* Update : updated pipenv to 11.0.1
1.2.1 (2018-01-08)
------------------
* Added documentation and fixed pypi build
1.2.0 (2018-01-08)
------------------
* Virtual environments are now correctly stored in .tox/<pyver>/.venv
* Packages will be reported by pipenv graph after installation. Pip freeze is still being run, downstream PR raised in tox
* Plugin should not accidentally remove host virtualenv binaries
1.1.0 (2017-12-30)
------------------
* Use Pipenv install --dev as the default installation command
1.0.0 (2017-12-22)
------------------
* Support for creation and recreation of virtual environments using Pipenv
* Isolation of Pipfile within the tox directory
* Support for installation of tox-specified packages in Pipenv
* Support for execution of test commands within a Pipenv virtual env
==========
.. image:: https://img.shields.io/pypi/v/tox-pipenv.svg
:target: https://pypi-hypernode.com/pypi/tox-pipenv
.. image:: https://img.shields.io/travis/tox-dev/tox-pipenv.svg
:target: https://travis-ci.org/tox-dev/tox-pipenv
.. image:: https://codecov.io/gh/tox-dev/tox-pipenv/branch/master/graph/badge.svg
:target: https://codecov.io/gh/tox-dev/tox-pipenv
.. image:: https://pyup.io/repos/github/tox-dev/tox-pipenv/shield.svg
:target: https://pyup.io/repos/github/tox-dev/tox-pipenv/
:alt: Updates
.. image:: https://pyup.io/repos/github/tox-dev/tox-pipenv/python-3-shield.svg
:target: https://pyup.io/repos/github/tox-dev/tox-pipenv/
:alt: Python 3
A tox plugin to replace the default use of virtualenv with Pipenv.
This is a convenient way to retain your use of Pipenv, whilst testing multiple versions of Python.
Installation
------------
.. code-block:: bash
pip install tox-pipenv
Or,
.. code-block:: bash
pipenv install tox-pipenv
Creating virtual environments
-----------------------------
With this plugin, tox will use `pipenv --python {python binary}` as given to the tox interpreter for each python path.
If you already have virtual environments cached with tox, use the --recreate flag to recreate them with pipenv.
Note: tox will pass the --site-packages flag to pipenv if this is configured in your tox config.
The Pipfile will exist in .tox/{env}/Pipfile as well as Pipfile.lock
Installing requirements
-----------------------
The installation of requirements from your tox config will be passed to pipenv install for installation into the virtual
environment. This replaces the use of pip within tox.
``requirements.txt`` files will also be parsed by Pipenv and used for each test environment
Executing tests
---------------
Each of the commands in your testenv configuration will be passed to pipenv to execute within the pipenv virtual environment
Example tox.ini
---------------
This simple example will test against Python 2.7 and 3.6 using pytest to execute the tests.
```
[tox]
envlist = py27, py36
[testenv]
deps =
pytest
pytest-mock
commands = python -m pytest test/
```
Frequently asked questions
--------------------------
Where to install
~~~~~~~~~~~~~~~~
Tox-Pipenv should be installed in the same environment as Tox, whether that is in a virtualenvironment, system environment or user environment. Tox-Pipenv depends on
Tox 3.0 or newer.
Is user expected to create `Pipfile` and `Pipfile.lock` before executing `tox` with this plugin?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Yes, although if you are migrating from a requirements.txt to a Pipfile, you can use Pipenv to create the Pipfile for you.
Is `Pipfile.lock` expected to be under source control?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
According to `pipenv` documenation, `Pipfile.lock` is not recommended under source control if it is going to be used under multiple Python versions.
What is the role of `requirements.txt` file?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Often, `tox` users use `requirements.txt` which is then referenced from within `tox.ini` file as deps. Pipenv will automatically install any packages listed in
`requirements.txt` for each virtual environment that Tox creates.
Is `tox.ini` `deps` section really in control?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
No, this is a known limitation.
Authors
-------
* Anthony Shaw
* Omer Katz
Release notes
=============
1.6.0 (2018-07-04)
------------------
* Bugfix : Tox would fail when executed twice if usedevelop was set to True, reported by @ashwinvis #46
* Bugfix : Any additional dependencies specified in `deps` within tox.ini would be written to the root Pipfile. A temporary Pipfile is created
for each virtualenv now, which is a clone of the root Pipfile
1.5.0 (2018-07-03)
------------------
* Update : Update tox to 3.0.0
* Feature : Tox report now uses pipenv instead of pip freeze
* Bugfix : Fixed issue on newer versions of pipenv raising error "AttributeError: 'Project' object has no attribute 'pipfile_sources'" (#41)
1.4.1 (2018-03-15)
------------------
* Removed test virtualenv from package, meaning distribution was 18MB, should be 15Kb #38
1.4.0 (2018-03-08)
------------------
* Bugfix : Fixed error "LocalPath object has no attribute endswith"
* Bugfix : Fixed error "Cannot run tox for the first time with this plugin installed"
1.3.0 (2018-03-03)
------------------
* Bugfix : fixed issue when Pathlib.Path occured instead of string
* Update : updated pipenv to 11.0.1
1.2.1 (2018-01-08)
------------------
* Added documentation and fixed pypi build
1.2.0 (2018-01-08)
------------------
* Virtual environments are now correctly stored in .tox/<pyver>/.venv
* Packages will be reported by pipenv graph after installation. Pip freeze is still being run, downstream PR raised in tox
* Plugin should not accidentally remove host virtualenv binaries
1.1.0 (2017-12-30)
------------------
* Use Pipenv install --dev as the default installation command
1.0.0 (2017-12-22)
------------------
* Support for creation and recreation of virtual environments using Pipenv
* Isolation of Pipfile within the tox directory
* Support for installation of tox-specified packages in Pipenv
* Support for execution of test commands within a Pipenv virtual env
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tox-pipenv-1.6.0.tar.gz
(12.9 kB
view hashes)
Built Distribution
Close
Hashes for tox_pipenv-1.6.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94ae45fe405aa7f536546bac54b3262cc108814e376a3d74dc0115b26ead3923 |
|
MD5 | 75875adbf86ca555b3a9cfefc43ef85e |
|
BLAKE2b-256 | 167c400d48a2c74724faa4e1e2157ab192218184b14d9844e0a075c2877a973a |