diff options
author | Bruno Oliveira <nicoddemus@gmail.com> | 2016-10-20 23:39:28 -0200 |
---|---|---|
committer | Bruno Oliveira <nicoddemus@gmail.com> | 2016-10-21 08:55:53 -0200 |
commit | 37dcdfbc58441a266272d8ab4a8cc985ca51fb84 (patch) | |
tree | f5674605d0808fd769dfba8930e17426c0c78801 /_pytest | |
parent | c0719a5b4cdbab0874301b1a664fbd47ee9e5896 (diff) | |
download | pytest-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.py | 22 | ||||
-rw-r--r-- | _pytest/recwarn.py | 7 |
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 |