Metadata-Version: 2.1
Name: parametrize_from_file
Version: 0.3.0
Summary: Parameterize unit tests with values from YAML, TOML, and NT files.
Home-page: https://github.com/kalekundert/parametrize_from_file
License: UNKNOWN
Author: Kale Kundert
Author-email: kale@thekunderts.net
Requires-Python: ~=3.6
Description-Content-Type: text/x-rst
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Requires-Dist: toml
Requires-Dist: pyyaml
Requires-Dist: nestedtext
Requires-Dist: tidyexc
Requires-Dist: pytest
Requires-Dist: more_itertools
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: sphinx_rtd_theme ; extra == "doc"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Requires-Dist: coveralls ; extra == "test"
Requires-Dist: voluptuous ; extra == "test"
Project-URL: Bug Tracker, https://github.com/kalekundert/parametrize_from_file/issues
Project-URL: Continuous Integration, https://github.com/kalekundert/parametrize_from_file/actions
Project-URL: Documentation, https://parametrize_from_file.readthedocs.io/en/latest/
Project-URL: Test Coverage, https://coveralls.io/github/kalekundert/parametrize_from_file
Project-URL: Version Control, https://github.com/kalekundert/parametrize_from_file
Provides-Extra: doc
Provides-Extra: test

*********************
Parametrize From File
*********************

.. image:: https://img.shields.io/pypi/v/parametrize_from_file.svg
   :target: https://pypi.python.org/pypi/parametrize_from_file

.. image:: https://img.shields.io/pypi/pyversions/parametrize_from_file.svg
   :target: https://pypi.python.org/pypi/parametrize_from_file

.. image:: https://img.shields.io/readthedocs/parametrize_from_file.svg
   :target: https://parametrize_from_file.readthedocs.io/en/latest/?badge=latest

.. image:: https://img.shields.io/github/workflow/status/kalekundert/parametrize_from_file/Test%20and%20release/master
   :target: https://github.com/kalekundert/parametrize_from_file/actions

.. image:: https://img.shields.io/coveralls/kalekundert/parametrize_from_file.svg
   :target: https://coveralls.io/github/kalekundert/parametrize_from_file?branch=master

Parametrizing your tests—in other words, separating the test data from the test 
code—is frequently a good idea.  It makes it easier to add new test cases, 
while also making it easier to read and understand the test code.

``parametrize_from_file`` provides a convenient way to parametrize tests when 
using the popular pytest_ framework.  The central idea is to keep the 
parameters in their own files, separate from the test code.  This prevents long 
lists of parameters from dwarfing your test code, and often allows parameters 
to be specified more clearly and succinctly than would be possible in python.  
Below is the basic workflow that this package enables:

- Write test cases in a JSON_, YAML_, TOML_, or NestedText_ file::

    # test_misc.yml
    test_addition:
      - a: 1
        b: 2
        c: 3

- Decorate the corresponding test functions with `parametrize_from_file`::

    # test_misc.py
    import parametrize_from_file

    @parametrize_from_file
    def test_addition(a, b, c):
        assert a + b == c

- Run pytest_ as usual::

    $ pytest

.. _pytest: https://docs.pytest.org/en/stable/getting-started.html
.. _JSON: https://www.json.org/json-en.html
.. _YAML: https://yaml.org/
.. _TOML: https://toml.io/en/
.. _NestedText: https://nestedtext.org/en/latest/


