Skip to content

Commit

Permalink
Merge pull request #2481 from stevepiercy/docs/easy-install-to-pip.2104
Browse files Browse the repository at this point in the history
update testing.rst
  • Loading branch information
stevepiercy committed Apr 12, 2016
2 parents 85c70a5 + e976a62 commit 310f844
Showing 1 changed file with 19 additions and 28 deletions.
47 changes: 19 additions & 28 deletions docs/narr/testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ without needing to invoke the actual application configuration implied by its
In the above example, we create a ``MyTest`` test case that inherits from
:class:`unittest.TestCase`. If it's in our :app:`Pyramid` application, it will
be found when ``setup.py test`` is run. It has two test methods.
be found when ``py.test`` is run. It has two test methods.

The first test method, ``test_view_fn_forbidden`` tests the ``view_fn`` when
the authentication policy forbids the current user the ``edit`` permission. Its
Expand Down Expand Up @@ -365,46 +365,37 @@ Functional tests test your literal application.

In Pyramid, functional tests are typically written using the :term:`WebTest`
package, which provides APIs for invoking HTTP(S) requests to your application.
We also like ``py.test`` and ``pytest-cov`` to provide simple testing and
coverage reports.

Regardless of which testing :term:`package` you use, ensure to add a
``tests_require`` dependency on that package to your application's
``setup.py`` file. Using the project ``MyProject`` generated by the starter
scaffold as described in :doc:`project`, we would insert the following code immediately following the
``requires`` block in the file ``MyProject/setup.py``.
Regardless of which testing :term:`package` you use, be sure to add a
``tests_require`` dependency on that package to your application's ``setup.py``
file. Using the project ``MyProject`` generated by the starter scaffold as
described in :doc:`project`, we would insert the following code immediately
following the ``requires`` block in the file ``MyProject/setup.py``.

.. code-block:: ini
.. literalinclude:: MyProject/setup.py
:language: python
:linenos:
:lines: 11-22
:lineno-start: 11
:emphasize-lines: 8-

requires = [
'pyramid',
'pyramid_chameleon',
'pyramid_debugtoolbar',
'waitress',
]
test_requires = [
'webtest',
]
Remember to change the dependency.

.. code-block:: ini
.. literalinclude:: MyProject/setup.py
:language: python
:linenos:
:lineno-start: 39
:emphasize-lines: 2
install_requires=requires,
tests_require=test_requires,
test_suite="myproject",
:lines: 40-44
:lineno-start: 40
:emphasize-lines: 2-4

As always, whenever you change your dependencies, make sure to run the
following command.
As always, whenever you change your dependencies, make sure to run the correct
``pip install -e`` command.

.. code-block:: bash
$VENV/bin/python setup.py develop
$VENV/bin/pip install -e ".[testing]"
In your ``MyPackage`` project, your :term:`package` is named ``myproject``
which contains a ``views`` module, which in turn contains a :term:`view`
Expand Down

0 comments on commit 310f844

Please sign in to comment.