summaryrefslogtreecommitdiff
path: root/_pytest
diff options
context:
space:
mode:
authorBruno Oliveira <nicoddemus@gmail.com>2016-10-20 23:39:28 -0200
committerBruno Oliveira <nicoddemus@gmail.com>2016-10-21 08:55:53 -0200
commit37dcdfbc58441a266272d8ab4a8cc985ca51fb84 (patch)
treef5674605d0808fd769dfba8930e17426c0c78801 /_pytest
parentc0719a5b4cdbab0874301b1a664fbd47ee9e5896 (diff)
downloadpytest-37dcdfbc58441a266272d8ab4a8cc985ca51fb84.tar.gz
Re-enable docstring testing of _pytest modules on CI
* Fix doctests * List one env per line in tox.ini * "doctesting" tox env now also tests docstrings using doctest
Diffstat (limited to '_pytest')
-rw-r--r--_pytest/python.py22
-rw-r--r--_pytest/recwarn.py7
2 files changed, 19 insertions, 10 deletions
diff --git a/_pytest/python.py b/_pytest/python.py
index 62d2896ea..a42e7185e 100644
--- a/_pytest/python.py
+++ b/_pytest/python.py
@@ -1105,7 +1105,9 @@ def raises(expected_exception, *args, **kwargs):
>>> with raises(ZeroDivisionError, message="Expecting ZeroDivisionError"):
... pass
- ... Failed: Expecting ZeroDivisionError
+ Traceback (most recent call last):
+ ...
+ Failed: Expecting ZeroDivisionError
.. note::
@@ -1116,19 +1118,21 @@ def raises(expected_exception, *args, **kwargs):
Lines of code after that, within the scope of the context manager will
not be executed. For example::
- >>> with raises(OSError) as exc_info:
- assert 1 == 1 # this will execute as expected
- raise OSError(errno.EEXISTS, 'directory exists')
- assert exc_info.value.errno == errno.EEXISTS # this will not execute
+ >>> value = 15
+ >>> with raises(ValueError) as exc_info:
+ ... if value > 10:
+ ... raise ValueError("value must be <= 10")
+ ... assert str(exc_info.value) == "value must be <= 10" # this will not execute
Instead, the following approach must be taken (note the difference in
scope)::
- >>> with raises(OSError) as exc_info:
- assert 1 == 1 # this will execute as expected
- raise OSError(errno.EEXISTS, 'directory exists')
+ >>> with raises(ValueError) as exc_info:
+ ... if value > 10:
+ ... raise ValueError("value must be <= 10")
+ ...
+ >>> assert str(exc_info.value) == "value must be <= 10"
- assert exc_info.value.errno == errno.EEXISTS # this will now execute
Or you can specify a callable by passing a to-be-called lambda::
diff --git a/_pytest/recwarn.py b/_pytest/recwarn.py
index a89474c03..87823bfbc 100644
--- a/_pytest/recwarn.py
+++ b/_pytest/recwarn.py
@@ -36,8 +36,13 @@ def deprecated_call(func=None, *args, **kwargs):
This function can be used as a context manager::
+ >>> import warnings
+ >>> def api_call_v2():
+ ... warnings.warn('use v3 of this api', DeprecationWarning)
+ ... return 200
+
>>> with deprecated_call():
- ... myobject.deprecated_method()
+ ... assert api_call_v2() == 200
Note: we cannot use WarningsRecorder here because it is still subject
to the mechanism that prevents warnings of the same type from being