Metadata-Version: 2.0
Name: play-python
Version: 0.0.1
Summary: pytest-play plugin with python expressions and assertions
Home-page: https://github.com/tierratelematics/play_python
Author: Davide Moro
Author-email: davide.moro@gmail.com
License: Apache Software License 2.0
Description-Content-Type: UNKNOWN
Keywords: play_python
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: pytest-play (>=1.0.0)
Requires-Dist: RestrictedPython (>=4.0.b2)
Provides-Extra: tests
Requires-Dist: pytest; extra == 'tests'
Requires-Dist: mock; extra == 'tests'
Requires-Dist: pytest-cov; extra == 'tests'

===========
play python
===========


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

.. image:: https://img.shields.io/travis/tierratelematics/play_python.svg
        :target: https://travis-ci.org/tierratelematics/play_python

.. image:: https://readthedocs.org/projects/play-python/badge/?version=latest
        :target: https://play-python.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://codecov.io/gh/tierratelematics/play_python/branch/develop/graph/badge.svg
     :target: https://codecov.io/gh/tierratelematics/play_python


pytest-play plugin with restricted Python expressions and assertions and it is
based on the ``RestrictedPython`` package.

``RestrictedPython`` is a tool that helps to define a subset of the Python
language which allows to provide a program input into a trusted environment.
RestrictedPython is not a sandbox system or a secured environment, but it helps
to define a trusted environment and execute untrusted code inside of it.

See:

* https://github.com/zopefoundation/RestrictedPython

More info and examples on:

* pytest-play_, documentation
* cookiecutter-qa_, see ``pytest-play`` in action with a working example if you want to start hacking


Features
========


This project defines the following pytest-play_ commands based on Python
expressions.


Store variables
---------------

You can store a pytest-play_ variables::

    {
     'provider': 'python',
     'type': 'store_variable',
     'expression': '1+1',
     'name': 'foo'
    }

Make a Python assertion
-----------------------

You can make an assertion based on a Python expression::

    {
     'provider': 'python',
     'type': 'assert',
     'expression': 'variables["foo"] == 2'
    }

Sleep
-----

Sleep for a given amount of seconds::

    {
     'provider': 'python',
     'type': 'sleep',
     'seconds': 2
    }

Exec a Python expresssion
-------------------------

You can execute a Python expression::

    {
     'provider': 'python',
     'type': 'exec',
     'expression': 'variables.update({'play_requests': {'parameters': {'headers': {'Authorization': '$bearer', 'Content-Type': 'application/json'}}}})'
    }


Twitter
=======

``pytest-play`` tweets happens here:

* `@davidemoro`_

Credits
=======

This package was created with Cookiecutter_ and the cookiecutter-play-plugin_ (based on `audreyr/cookiecutter-pypackage`_ project template).

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
.. _`cookiecutter-play-plugin`: https://github.com/tierratelematics/cookiecutter-play-plugin
.. _pytest-play: https://github.com/tierratelematics/pytest-play
.. _cookiecutter-qa: https://github.com/tierratelematics/cookiecutter-qa
.. _`@davidemoro`: https://twitter.com/davidemoro


=======
CHANGES
=======

0.0.1 (2018-01-10)
------------------

* First release


