204 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			204 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Python
		
	
	
	
| from __future__ import absolute_import, division, print_function
 | |
| import pytest
 | |
| 
 | |
| 
 | |
| def test_yield_tests_deprecation(testdir):
 | |
|     testdir.makepyfile("""
 | |
|         def func1(arg, arg2):
 | |
|             assert arg == arg2
 | |
|         def test_gen():
 | |
|             yield "m1", func1, 15, 3*5
 | |
|             yield "m2", func1, 42, 6*7
 | |
|         def test_gen2():
 | |
|             for k in range(10):
 | |
|                 yield func1, 1, 1
 | |
|     """)
 | |
|     result = testdir.runpytest('-ra')
 | |
|     result.stdout.fnmatch_lines([
 | |
|         '*yield tests are deprecated, and scheduled to be removed in pytest 4.0*',
 | |
|         '*2 passed*',
 | |
|     ])
 | |
|     assert result.stdout.str().count('yield tests are deprecated') == 2
 | |
| 
 | |
| 
 | |
| def test_funcarg_prefix_deprecation(testdir):
 | |
|     testdir.makepyfile("""
 | |
|         def pytest_funcarg__value():
 | |
|             return 10
 | |
| 
 | |
|         def test_funcarg_prefix(value):
 | |
|             assert value == 10
 | |
|     """)
 | |
|     result = testdir.runpytest('-ra')
 | |
|     result.stdout.fnmatch_lines([
 | |
|         ('*pytest_funcarg__value: '
 | |
|          'declaring fixtures using "pytest_funcarg__" prefix is deprecated '
 | |
|          'and scheduled to be removed in pytest 4.0.  '
 | |
|          'Please remove the prefix and use the @pytest.fixture decorator instead.'),
 | |
|         '*1 passed*',
 | |
|     ])
 | |
| 
 | |
| 
 | |
| def test_pytest_setup_cfg_deprecated(testdir):
 | |
|     testdir.makefile('.cfg', setup='''
 | |
|         [pytest]
 | |
|         addopts = --verbose
 | |
|     ''')
 | |
|     result = testdir.runpytest()
 | |
|     result.stdout.fnmatch_lines(['*pytest*section in setup.cfg files is deprecated*use*tool:pytest*instead*'])
 | |
| 
 | |
| 
 | |
| def test_pytest_custom_cfg_deprecated(testdir):
 | |
|     testdir.makefile('.cfg', custom='''
 | |
|         [pytest]
 | |
|         addopts = --verbose
 | |
|     ''')
 | |
|     result = testdir.runpytest("-c", "custom.cfg")
 | |
|     result.stdout.fnmatch_lines(['*pytest*section in custom.cfg files is deprecated*use*tool:pytest*instead*'])
 | |
| 
 | |
| 
 | |
| def test_str_args_deprecated(tmpdir, testdir):
 | |
|     """Deprecate passing strings to pytest.main(). Scheduled for removal in pytest-4.0."""
 | |
|     from _pytest.main import EXIT_NOTESTSCOLLECTED
 | |
|     warnings = []
 | |
| 
 | |
|     class Collect(object):
 | |
|         def pytest_logwarning(self, message):
 | |
|             warnings.append(message)
 | |
| 
 | |
|     ret = pytest.main("%s -x" % tmpdir, plugins=[Collect()])
 | |
|     msg = ('passing a string to pytest.main() is deprecated, '
 | |
|            'pass a list of arguments instead.')
 | |
|     assert msg in warnings
 | |
|     assert ret == EXIT_NOTESTSCOLLECTED
 | |
| 
 | |
| 
 | |
| def test_getfuncargvalue_is_deprecated(request):
 | |
|     pytest.deprecated_call(request.getfuncargvalue, 'tmpdir')
 | |
| 
 | |
| 
 | |
| def test_resultlog_is_deprecated(testdir):
 | |
|     result = testdir.runpytest('--help')
 | |
|     result.stdout.fnmatch_lines(['*DEPRECATED path for machine-readable result log*'])
 | |
| 
 | |
|     testdir.makepyfile('''
 | |
|         def test():
 | |
|             pass
 | |
|     ''')
 | |
|     result = testdir.runpytest('--result-log=%s' % testdir.tmpdir.join('result.log'))
 | |
|     result.stdout.fnmatch_lines([
 | |
|         '*--result-log is deprecated and scheduled for removal in pytest 4.0*',
 | |
|         '*See https://docs.pytest.org/*/usage.html#creating-resultlog-format-files for more information*',
 | |
|     ])
 | |
| 
 | |
| 
 | |
| @pytest.mark.filterwarnings('always:Metafunc.addcall is deprecated')
 | |
| def test_metafunc_addcall_deprecated(testdir):
 | |
|     testdir.makepyfile("""
 | |
|         def pytest_generate_tests(metafunc):
 | |
|             metafunc.addcall({'i': 1})
 | |
|             metafunc.addcall({'i': 2})
 | |
|         def test_func(i):
 | |
|             pass
 | |
|     """)
 | |
|     res = testdir.runpytest('-s')
 | |
|     assert res.ret == 0
 | |
|     res.stdout.fnmatch_lines([
 | |
|         "*Metafunc.addcall is deprecated*",
 | |
|         "*2 passed, 2 warnings*",
 | |
|     ])
 | |
| 
 | |
| 
 | |
| def test_terminal_reporter_writer_attr(pytestconfig):
 | |
|     """Check that TerminalReporter._tw is also available as 'writer' (#2984)
 | |
|     This attribute is planned to be deprecated in 3.4.
 | |
|     """
 | |
|     try:
 | |
|         import xdist  # noqa
 | |
|         pytest.skip('xdist workers disable the terminal reporter plugin')
 | |
|     except ImportError:
 | |
|         pass
 | |
|     terminal_reporter = pytestconfig.pluginmanager.get_plugin('terminalreporter')
 | |
|     assert terminal_reporter.writer is terminal_reporter._tw
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize('plugin', ['catchlog', 'capturelog'])
 | |
| def test_pytest_catchlog_deprecated(testdir, plugin):
 | |
|     testdir.makepyfile("""
 | |
|         def test_func(pytestconfig):
 | |
|             pytestconfig.pluginmanager.register(None, 'pytest_{0}')
 | |
|     """.format(plugin))
 | |
|     res = testdir.runpytest()
 | |
|     assert res.ret == 0
 | |
|     res.stdout.fnmatch_lines([
 | |
|         "*pytest-*log plugin has been merged into the core*",
 | |
|         "*1 passed, 1 warnings*",
 | |
|     ])
 | |
| 
 | |
| 
 | |
| def test_pytest_plugins_in_non_top_level_conftest_deprecated(testdir):
 | |
|     from _pytest.deprecated import PYTEST_PLUGINS_FROM_NON_TOP_LEVEL_CONFTEST
 | |
|     subdirectory = testdir.tmpdir.join("subdirectory")
 | |
|     subdirectory.mkdir()
 | |
|     # create the inner conftest with makeconftest and then move it to the subdirectory
 | |
|     testdir.makeconftest("""
 | |
|         pytest_plugins=['capture']
 | |
|     """)
 | |
|     testdir.tmpdir.join("conftest.py").move(subdirectory.join("conftest.py"))
 | |
|     # make the top level conftest
 | |
|     testdir.makeconftest("""
 | |
|         import warnings
 | |
|         warnings.filterwarnings('always', category=DeprecationWarning)
 | |
|     """)
 | |
|     testdir.makepyfile("""
 | |
|         def test_func():
 | |
|             pass
 | |
|     """)
 | |
|     res = testdir.runpytest_subprocess()
 | |
|     assert res.ret == 0
 | |
|     res.stderr.fnmatch_lines('*' + str(PYTEST_PLUGINS_FROM_NON_TOP_LEVEL_CONFTEST).splitlines()[0])
 | |
| 
 | |
| 
 | |
| def test_pytest_plugins_in_non_top_level_conftest_deprecated_no_top_level_conftest(testdir):
 | |
|     from _pytest.deprecated import PYTEST_PLUGINS_FROM_NON_TOP_LEVEL_CONFTEST
 | |
|     subdirectory = testdir.tmpdir.join('subdirectory')
 | |
|     subdirectory.mkdir()
 | |
|     testdir.makeconftest("""
 | |
|         import warnings
 | |
|         warnings.filterwarnings('always', category=DeprecationWarning)
 | |
|         pytest_plugins=['capture']
 | |
|     """)
 | |
|     testdir.tmpdir.join("conftest.py").move(subdirectory.join("conftest.py"))
 | |
| 
 | |
|     testdir.makepyfile("""
 | |
|         def test_func():
 | |
|             pass
 | |
|     """)
 | |
| 
 | |
|     res = testdir.runpytest_subprocess()
 | |
|     assert res.ret == 0
 | |
|     res.stderr.fnmatch_lines('*' + str(PYTEST_PLUGINS_FROM_NON_TOP_LEVEL_CONFTEST).splitlines()[0])
 | |
| 
 | |
| 
 | |
| def test_pytest_plugins_in_non_top_level_conftest_deprecated_no_false_positives(testdir):
 | |
|     from _pytest.deprecated import PYTEST_PLUGINS_FROM_NON_TOP_LEVEL_CONFTEST
 | |
|     subdirectory = testdir.tmpdir.join('subdirectory')
 | |
|     subdirectory.mkdir()
 | |
|     testdir.makeconftest("""
 | |
|         pass
 | |
|     """)
 | |
|     testdir.tmpdir.join("conftest.py").move(subdirectory.join("conftest.py"))
 | |
| 
 | |
|     testdir.makeconftest("""
 | |
|         import warnings
 | |
|         warnings.filterwarnings('always', category=DeprecationWarning)
 | |
|         pytest_plugins=['capture']
 | |
|     """)
 | |
|     testdir.makepyfile("""
 | |
|         def test_func():
 | |
|             pass
 | |
|     """)
 | |
|     res = testdir.runpytest_subprocess()
 | |
|     assert res.ret == 0
 | |
|     assert str(PYTEST_PLUGINS_FROM_NON_TOP_LEVEL_CONFTEST).splitlines()[0] not in res.stderr.str()
 |