add example for catching exceptions, simplify install doc
--HG-- branch : trunk
This commit is contained in:
parent
6cddd7e793
commit
f466d35771
|
@ -21,6 +21,7 @@ Changes between 1.3.4 and 2.0.0dev0
|
||||||
- refine 'tmpdir' creation, will now create basenames better associated
|
- refine 'tmpdir' creation, will now create basenames better associated
|
||||||
with test names (thanks Ronny)
|
with test names (thanks Ronny)
|
||||||
- "xpass" (unexpected pass) tests don't cause exitcode!=0
|
- "xpass" (unexpected pass) tests don't cause exitcode!=0
|
||||||
|
- fix issue131 / issue60 - importing doctests in __init__ files used as namespace packages
|
||||||
|
|
||||||
Changes between 1.3.3 and 1.3.4
|
Changes between 1.3.3 and 1.3.4
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
|
|
|
@ -36,6 +36,9 @@ help:
|
||||||
clean:
|
clean:
|
||||||
-rm -rf $(BUILDDIR)/*
|
-rm -rf $(BUILDDIR)/*
|
||||||
|
|
||||||
|
install: html
|
||||||
|
rsync -avz _build/html/ code:public_html/pytest
|
||||||
|
|
||||||
html:
|
html:
|
||||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||||
@echo
|
@echo
|
||||||
|
|
18
doc/faq.txt
18
doc/faq.txt
|
@ -6,7 +6,23 @@ Frequent Issues and Questions
|
||||||
Installation issues
|
Installation issues
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
easy_install or py.test not found on Windows machine
|
easy_install or pip not found?
|
||||||
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
Consult distribute_ to install the ``easy_install`` tool on your machine.
|
||||||
|
You may also use the original but somewhat older `setuptools`_ project
|
||||||
|
although we generally recommend to use ``distribute`` because it contains
|
||||||
|
more bug fixes and also works for Python3.
|
||||||
|
|
||||||
|
For Python2 you can also consult pip_ for the popular ``pip`` tool.
|
||||||
|
|
||||||
|
for the according ``pip`` installation tool. installation instructions.
|
||||||
|
You can also `setuptools`_ and
|
||||||
|
If you want to install on Python3 you need to use Distribute_ which
|
||||||
|
provides the ``easy_install`` utility.
|
||||||
|
|
||||||
|
|
||||||
|
py.test not found on Windows despite installation?
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
.. _`Python for Windows`: http://www.imladris.com/Scripts/PythonForWindows.html
|
.. _`Python for Windows`: http://www.imladris.com/Scripts/PythonForWindows.html
|
||||||
|
|
|
@ -1,34 +1,30 @@
|
||||||
Installation and Getting Started
|
Getting Started
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
.. _`easy_install`:
|
.. _`easy_install`:
|
||||||
|
|
||||||
Installation using easy_install
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
**PyPI distribution name**: pytest_. **repository**: https://bitbucket.org/hpk42/pytest
|
|
||||||
|
|
||||||
**Compatibility**: Python 2.4-3.2, Jython, PyPy on Unix/Posix and Windows
|
**Compatibility**: Python 2.4-3.2, Jython, PyPy on Unix/Posix and Windows
|
||||||
|
|
||||||
You need to have setuptools_ or Distribute_ to install or upgrade ``py.test``::
|
Installation
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
easy_install -U pytest
|
Installation options::
|
||||||
|
|
||||||
Note that setuptools works for Python2 interpreters and
|
easy_install -U pytest # or
|
||||||
**Distribute works for both Python3 and Python2** and fixes some issues
|
pip install -U pytest
|
||||||
on Windows. You may also use pip_ for installation on Python2 interpreters.
|
|
||||||
|
|
||||||
To check your installation works type::
|
To check your installation has installed the correct version::
|
||||||
|
|
||||||
$ py.test --version
|
$ py.test --version
|
||||||
|
|
||||||
If you get an error, checkout :ref:`installation issues`.
|
If you get an error, checkout :ref:`installation issues`.
|
||||||
|
|
||||||
|
|
||||||
Writing a first test
|
Writing a simple test function with an assertion
|
||||||
------------------------------
|
----------------------------------------------------------
|
||||||
|
|
||||||
Let's create a small file with the following content::
|
Let's create a small file with a test function testing a function
|
||||||
|
computes a certain value::
|
||||||
|
|
||||||
# content of test_sample.py
|
# content of test_sample.py
|
||||||
def func(x):
|
def func(x):
|
||||||
|
@ -36,17 +32,17 @@ Let's create a small file with the following content::
|
||||||
def test_answer():
|
def test_answer():
|
||||||
assert func(3) == 5
|
assert func(3) == 5
|
||||||
|
|
||||||
That's it. Now you can already execute the test function::
|
Now you can execute the test function::
|
||||||
|
|
||||||
$ py.test test_sample.py
|
$ py.test test_sample.py
|
||||||
=========================== test session starts ============================
|
========================= test session starts ==========================
|
||||||
platform linux2 -- Python 2.6.5 -- pytest-2.0.0dev0
|
platform linux2 -- Python 2.6.5 -- pytest-2.0.0.dev4
|
||||||
test path 1: test_sample.py
|
test path 1: test_sample.py
|
||||||
|
|
||||||
test_sample.py F
|
test_sample.py F
|
||||||
|
|
||||||
================================= FAILURES =================================
|
=============================== FAILURES ===============================
|
||||||
_______________________________ test_answer ________________________________
|
_____________________________ test_answer ______________________________
|
||||||
|
|
||||||
def test_answer():
|
def test_answer():
|
||||||
> assert func(3) == 5
|
> assert func(3) == 5
|
||||||
|
@ -54,7 +50,7 @@ That's it. Now you can already execute the test function::
|
||||||
E + where 4 = func(3)
|
E + where 4 = func(3)
|
||||||
|
|
||||||
test_sample.py:4: AssertionError
|
test_sample.py:4: AssertionError
|
||||||
========================= 1 failed in 0.02 seconds =========================
|
======================= 1 failed in 0.02 seconds =======================
|
||||||
|
|
||||||
We got a failure because our little ``func(3)`` call did not return ``5``.
|
We got a failure because our little ``func(3)`` call did not return ``5``.
|
||||||
A few notes on this little test invocation:
|
A few notes on this little test invocation:
|
||||||
|
@ -67,6 +63,33 @@ A few notes on this little test invocation:
|
||||||
|
|
||||||
.. _`assert statement`: http://docs.python.org/reference/simple_stmts.html#the-assert-statement
|
.. _`assert statement`: http://docs.python.org/reference/simple_stmts.html#the-assert-statement
|
||||||
|
|
||||||
|
Asserting that a certain exception is raised
|
||||||
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
If you want to assert a test raises a certain exception you can
|
||||||
|
use the ``raises`` helper::
|
||||||
|
|
||||||
|
# content of test_sysexit.py
|
||||||
|
import py
|
||||||
|
def f():
|
||||||
|
raise SystemExit(1)
|
||||||
|
|
||||||
|
def test_mytest():
|
||||||
|
with py.test.raises(SystemExit):
|
||||||
|
f()
|
||||||
|
|
||||||
|
Running it with::
|
||||||
|
|
||||||
|
$ py.test test_sysexit.py
|
||||||
|
========================= test session starts ==========================
|
||||||
|
platform linux2 -- Python 2.6.5 -- pytest-2.0.0.dev4
|
||||||
|
test path 1: test_sysexit.py
|
||||||
|
|
||||||
|
test_sysexit.py .
|
||||||
|
|
||||||
|
======================= 1 passed in 0.01 seconds =======================
|
||||||
|
|
||||||
|
.. For further ways to assert exceptions see the :pyfunc:`raises`
|
||||||
|
|
||||||
where to go from here
|
where to go from here
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue