# -*- coding: utf-8 -*- def test_no_items_should_not_show_output(testdir): result = testdir.runpytest('--fixtures-per-test') assert 'fixtures used by' not in result.stdout.str() assert result.ret == 0 def test_fixtures_in_module(testdir): p = testdir.makepyfile(''' import pytest @pytest.fixture def _arg0(): """hidden arg0 fixture""" @pytest.fixture def arg1(): """arg1 docstring""" def test_arg1(arg1): pass ''') result = testdir.runpytest("--fixtures-per-test", p) assert result.ret == 0 result.stdout.fnmatch_lines([ '*fixtures used by test_arg1*', '*(test_fixtures_in_module.py:9)*', 'arg1', ' arg1 docstring', ]) assert "_arg0" not in result.stdout.str() def test_fixtures_in_conftest(testdir): testdir.makeconftest(''' import pytest @pytest.fixture def arg1(): """arg1 docstring""" @pytest.fixture def arg2(): """arg2 docstring""" @pytest.fixture def arg3(arg1, arg2): """arg3 docstring """ ''') p = testdir.makepyfile(''' def test_arg2(arg2): pass def test_arg3(arg3): pass ''') result = testdir.runpytest("--fixtures-per-test", p) assert result.ret == 0 result.stdout.fnmatch_lines([ '*fixtures used by test_arg2*', '*(test_fixtures_in_conftest.py:2)*', 'arg2', ' arg2 docstring', '*fixtures used by test_arg3*', '*(test_fixtures_in_conftest.py:4)*', 'arg1', ' arg1 docstring', 'arg2', ' arg2 docstring', 'arg3', ' arg3', ' docstring', ]) def test_should_show_fixtures_used_by_test(testdir): testdir.makeconftest(''' import pytest @pytest.fixture def arg1(): """arg1 from conftest""" @pytest.fixture def arg2(): """arg2 from conftest""" ''') p = testdir.makepyfile(''' import pytest @pytest.fixture def arg1(): """arg1 from testmodule""" def test_args(arg1, arg2): pass ''') result = testdir.runpytest("--fixtures-per-test", p) assert result.ret == 0 result.stdout.fnmatch_lines([ '*fixtures used by test_args*', '*(test_should_show_fixtures_used_by_test.py:6)*', 'arg1', ' arg1 from testmodule', 'arg2', ' arg2 from conftest', ]) def test_verbose_include_private_fixtures_and_loc(testdir): testdir.makeconftest(''' import pytest @pytest.fixture def _arg1(): """_arg1 from conftest""" @pytest.fixture def arg2(_arg1): """arg2 from conftest""" ''') p = testdir.makepyfile(''' import pytest @pytest.fixture def arg3(): """arg3 from testmodule""" def test_args(arg2, arg3): pass ''') result = testdir.runpytest("--fixtures-per-test", "-v", p) assert result.ret == 0 result.stdout.fnmatch_lines([ '*fixtures used by test_args*', '*(test_verbose_include_private_fixtures_and_loc.py:6)*', '_arg1 -- conftest.py:3', ' _arg1 from conftest', 'arg2 -- conftest.py:6', ' arg2 from conftest', 'arg3 -- test_verbose_include_private_fixtures_and_loc.py:3', ' arg3 from testmodule', ]) def test_doctest_items(testdir): testdir.makepyfile(''' def foo(): """ >>> 1 + 1 2 """ ''') testdir.maketxtfile(''' >>> 1 + 1 2 ''') result = testdir.runpytest("--fixtures-per-test", "--doctest-modules", "--doctest-glob=*.txt", "-v") assert result.ret == 0 result.stdout.fnmatch_lines([ '*collected 2 items*', ])