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