diff options
| author | Chris McDonough <chrism@plope.com> | 2011-04-24 23:40:39 -0400 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2011-04-24 23:40:39 -0400 |
| commit | bb825910b3b68b4b167572fd5252cc99be88e17e (patch) | |
| tree | 453ac6979324ee3bc79d3767275ad24a7ee11891 /docs/tutorials/wiki/tests.rst | |
| parent | 568b30140001e86b2dcf8653e09a499e72038f27 (diff) | |
| parent | 9a8f7b51bf61f4051b7ff37930730d7954696124 (diff) | |
| download | pyramid-bb825910b3b68b4b167572fd5252cc99be88e17e.tar.gz pyramid-bb825910b3b68b4b167572fd5252cc99be88e17e.tar.bz2 pyramid-bb825910b3b68b4b167572fd5252cc99be88e17e.zip | |
Merge branch 'ppaez-zodb-tutorial-test-reorg'
Diffstat (limited to 'docs/tutorials/wiki/tests.rst')
| -rw-r--r-- | docs/tutorials/wiki/tests.rst | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/docs/tutorials/wiki/tests.rst b/docs/tutorials/wiki/tests.rst new file mode 100644 index 000000000..f3151dbcc --- /dev/null +++ b/docs/tutorials/wiki/tests.rst @@ -0,0 +1,78 @@ +============ +Adding Tests +============ + +We will now add tests for the models and the views and a few functional +tests in the ``tests.py``. Tests ensure that an application works, and +that it continues to work after some changes are made in the future. + +Testing the Models +================== + +We write tests for the model +classes and the appmaker. Changing ``tests.py``, we'll write a separate test +class for each model class, and we'll write a test class for the +``appmaker``. + +To do so, we'll retain the ``tutorial.tests.ViewTests`` class provided as a +result of the ``pyramid_zodb`` project generator. We'll add three test +classes: one for the ``Page`` model named ``PageModelTests``, one for the +``Wiki`` model named ``WikiModelTests``, and one for the appmaker named +``AppmakerTests``. + +Testing the Views +================= + +We'll modify our ``tests.py`` file, adding tests for each view function we +added above. As a result, we'll *delete* the ``ViewTests`` test in the file, +and add four other test classes: ``ViewWikiTests``, ``ViewPageTests``, +``AddPageTests``, and ``EditPageTests``. These test the ``view_wiki``, +``view_page``, ``add_page``, and ``edit_page`` views respectively. + + +Functional tests +================ + +We test the whole application, covering security aspects that are not +tested in the unit tests, like logging in, logging out, checking that +the ``viewer`` user cannot add or edit pages, but the ``editor`` user +can, and so on. + +Viewing the results of all our edits to ``tests.py`` +==================================================== + +Once we're done with the ``tests.py`` module, it will look a lot like the +below: + +.. literalinclude:: src/tests/tutorial/tests.py + :linenos: + :language: python + +Running the Tests +================= + +We can run these tests by using ``setup.py test`` in the same way we did in +:ref:`running_tests`. Assuming our shell's current working directory is the +"tutorial" distribution directory: + +On UNIX: + +.. code-block:: text + + $ ../bin/python setup.py test -q + +On Windows: + +.. code-block:: text + + c:\pyramidtut\tutorial> ..\Scripts\python setup.py test -q + +The expected result looks something like: + +.. code-block:: text + + ......... + ---------------------------------------------------------------------- + Ran 9 tests in 0.203s + + OK |
