Add tests and integrated the original code into the core
This commit is contained in:
parent
1da1906483
commit
26ca5a702e
|
@ -74,7 +74,7 @@ default_plugins = (
|
|||
"mark main terminal runner python fixtures debugging unittest capture skipping "
|
||||
"tmpdir monkeypatch recwarn pastebin helpconfig nose assertion "
|
||||
"junitxml resultlog doctest cacheprovider freeze_support "
|
||||
"setuponly setupplan").split()
|
||||
"setuponly setupplan warnings").split()
|
||||
|
||||
builtin_plugins = set(default_plugins)
|
||||
builtin_plugins.add("pytester")
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def pyfile_with_warnings(testdir):
|
||||
testdir.makepyfile('''
|
||||
import warnings
|
||||
def test_func():
|
||||
warnings.warn(PendingDeprecationWarning("functionality is pending deprecation"))
|
||||
warnings.warn(DeprecationWarning("functionality is deprecated"))
|
||||
''')
|
||||
|
||||
|
||||
def test_normal_flow(testdir, pyfile_with_warnings):
|
||||
result = testdir.runpytest_subprocess()
|
||||
result.stdout.fnmatch_lines([
|
||||
'*== pytest-warning summary ==*',
|
||||
|
||||
'WW0 in *test_normal_flow.py:1 the following warning was recorded:',
|
||||
' test_normal_flow.py:3: PendingDeprecationWarning: functionality is pending deprecation',
|
||||
' warnings.warn(PendingDeprecationWarning("functionality is pending deprecation"))',
|
||||
|
||||
'WW0 in *test_normal_flow.py:1 the following warning was recorded:',
|
||||
' test_normal_flow.py:4: DeprecationWarning: functionality is deprecated',
|
||||
' warnings.warn(DeprecationWarning("functionality is deprecated"))',
|
||||
'* 1 passed, 2 pytest-warnings*',
|
||||
])
|
||||
|
||||
|
||||
@pytest.mark.parametrize('method', ['cmdline', 'ini'])
|
||||
def test_as_errors(testdir, pyfile_with_warnings, method):
|
||||
args = ('-W', 'error') if method == 'cmdline' else ()
|
||||
if method == 'ini':
|
||||
testdir.makeini('''
|
||||
[pytest]
|
||||
filterwarnings= error
|
||||
''')
|
||||
result = testdir.runpytest_subprocess(*args)
|
||||
result.stdout.fnmatch_lines([
|
||||
'E PendingDeprecationWarning: functionality is pending deprecation',
|
||||
'test_as_errors.py:3: PendingDeprecationWarning',
|
||||
'* 1 failed in *',
|
||||
])
|
||||
|
||||
|
||||
@pytest.mark.parametrize('method', ['cmdline', 'ini'])
|
||||
def test_ignore(testdir, pyfile_with_warnings, method):
|
||||
args = ('-W', 'ignore') if method == 'cmdline' else ()
|
||||
if method == 'ini':
|
||||
testdir.makeini('''
|
||||
[pytest]
|
||||
filterwarnings= ignore
|
||||
''')
|
||||
|
||||
result = testdir.runpytest_subprocess(*args)
|
||||
result.stdout.fnmatch_lines([
|
||||
'* 1 passed in *',
|
||||
])
|
||||
assert 'pytest-warning summary' not in result.stdout.str()
|
||||
|
Loading…
Reference in New Issue