Metadata-Version: 2.0
Name: pypyr
Version: 0.0.10
Summary: pipeline runner
Home-page: https://github.com/pypyr/pypyr-cli
Author: 345
Author-email: pypyr@345.systems
License: Apache License 2.0
Keywords: devops pipeline runner
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: System :: Shells
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: ruamel.yaml
Provides-Extra: deploy
Requires-Dist: bumpversion; extra == 'deploy'
Provides-Extra: dev
Requires-Dist: check-manifest; extra == 'dev'
Requires-Dist: flake8; extra == 'dev'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: tox; extra == 'test'

#########################
pypyr cli pipeline runner
#########################

.. image:: https://cdn.345.systems/wp-content/uploads/2017/03/pypyr-logo-small.png
    :alt: pypyr-logo
    :align: left

*pypyr*
    pronounce how you like, but I generally say *piper* as in "piping down the
    valleys wild"


pypyr is a command line interface to run pipelines defined in yaml.

.. contents::

.. section-numbering::

Installation
============

pip
---
.. code-block:: bash

  # pip install --upgrade pypyr

Python version
--------------
Test against Python 3.x

Usage
=====


Testing
=======
Testing without worrying about dependencies
-------------------------------------------
Run from tox to test the packaging cycle inside a virtual env, plus run all
tests:

  .. code-block:: bash

      # just run tests
      $ tox -e dev -- tests
      # run tests, validate README.rst, run flake8 linter
      $ tox -e stage -- tests

If tox is taking too long
-------------------------
The test framework is pytest. If you only want to run tests:

.. code-block:: bash

  $ pip install -e .[dev,test]

Day-to-day testing
------------------
- Tests live under /tests (surprising, eh?). Mirror the directory structure of
  the code being tested.
- Prefix a test definition with `test_` - so a unit test looks like

  .. code-block:: python

    def test_this_should_totally_work():

- To execute tests, from root directory:

  .. code-block:: bash

    pytest tests

- For a bit more info on running tests:

  .. code-block:: bash

    pytest --verbose [path]

- To execute a specific test module:

  .. code-block:: bash

    pytest tests/unit/arb_test_file.py


