summaryrefslogtreecommitdiff
path: root/docs/tutorials/wiki/tests.rst
diff options
context:
space:
mode:
authorPatricio Paez <pp@pp.com.mx>2011-04-20 19:41:33 -0500
committerPatricio Paez <pp@pp.com.mx>2011-04-20 19:41:33 -0500
commitce1278bc1de230ab9bf2ce03c36db829ad959d59 (patch)
tree0ea407c2520279543fda598e387ed87a29f6fccb /docs/tutorials/wiki/tests.rst
parent6717ccbcd7f481e2a15c4ba318ccf6d63a1b7649 (diff)
downloadpyramid-ce1278bc1de230ab9bf2ce03c36db829ad959d59.tar.gz
pyramid-ce1278bc1de230ab9bf2ce03c36db829ad959d59.tar.bz2
pyramid-ce1278bc1de230ab9bf2ce03c36db829ad959d59.zip
Adding Tests in the ZODB wiki tutorial
- New section in the main index - Move Model and View tests there - Added Functional tests
Diffstat (limited to 'docs/tutorials/wiki/tests.rst')
-rw-r--r--docs/tutorials/wiki/tests.rst78
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