Metadata-Version: 2.1
Name: pyenvjasmine
Version: 0.3.1
Summary: A Python wrapper for envjasmine
Home-page: https://code.codigo23.net/trac/wiki/pyenvjasmine
Author: Sascha Welter
Author-email: sw@betabug-sirius.ch
Maintainer: Francisco de Borja Lopez Rio
Maintainer-email: borja@codigo23.net
License: BSD licence, see LICENSE
Download-URL: http://pypi.python.org/pypi/pyenvjasmine#downloads
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: JavaScript
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Testing
Requires-Dist: coverage
Requires-Dist: pyflakes
Requires-Dist: pytest
Requires-Dist: pytest-cov
Requires-Dist: pytest-flakes

Python envjasmine wrapper
=========================

This is a thin python wrapper around the envjasmine_ JavaScript
testing framework.


.. contents::


Installation
------------

You can install pyenvjasmine using pip_::

  pip install pyenvjasmine

Or you can grab the latest sources using Mercurial_ from https://code.codigo23.net/hg/pyenvjasmine::

  hg clone https://code.codigo23.net/hg/pyenvjasmine

and install it from there::

  python setup.py install

Also, you can use it directly from the sources directory, in *development mode*
(useful if you want to contribute to the project)::

  pip install -e .

.. note::

   More about the *development mode* here:

   https://packaging.python.org/en/latest/distributing.html#working-in-development-mode

.. warning::

   Starting with version **0.3.0**, pyenvjasmine has support to run tests with
   different browsers/engines. The headless browser rhino is included with
   pyenvjasmine, but in order to use the other engines, you have to install the
   needed browser(s).

   Right now, only phantomjs_ is supported, so ensure you have it installed if
   you want to use that browser/engine to run tests on. **Required if you want
   to run tests on jasmine 3.x** (also required to run pyenvjasmine's own
   tests).


Running pyenvjasmine tests
--------------------------

To run the tests on this code here (as opposed to *your* JavaScript code you
want to test), install pyenvjasmine (and phantomjs) and then run::

  py.test


Run your own tests
------------------

The easiest way is to put your "specs" (JavaScript tests) into some directory
in your code, then in your python tests, add a new TestCase with just one test
that runs all your JavaScript tests.

The simplest solution is to set capture_output to False, so you see the output
from the js tests on the console. Something like this::

    import pytest
    from pyenvjasmine.runner import Runner

    class TestJavaScript(object):
        def test_my_javascript(self):
            runner = Runner(
                testdir='/path/to/my/testdir',
                configfile='relative/path/to/configfile',
                testing_environment='phantomjs')
            success, stdout = runner.run()
            # assert on success, will be true if tests passed, False if any
            # test failed
            assert success, "One or more javascript tests have failed"
            # you can inspect stdout if you want to get more info, but it
            # will be printed to the console stdout anyway
            assert b'Total: 120' in stdout

In this example, the *phantomjs* browse/engine is used, replace that with
*rhino* to run tests on rhino + jasmine 1.x.

.. note::

   *phantomjs* is the preferred browser/engine, so it is what pyenvjasmine
   will use as a default if you don't set *testing_environment* when creating
   a new *Runner* instance.


.. _Mercurial: https://www.mercurial-scm.org
.. _envjasmine : https://github.com/trevmex/EnvJasmine
.. _pip: http://www.pip-installer.org/en/latest/index.html
.. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall
.. _phantomjs: http://phantomjs.org


