Implement tests for --fixtures-per-test
This commit is contained in:
parent
92323895c9
commit
b47f155d74
|
@ -0,0 +1,137 @@
|
|||
# -*- 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*',
|
||||
'*from 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*',
|
||||
'*from test_fixtures_in_conftest.py:2*',
|
||||
'arg2',
|
||||
' arg2 docstring',
|
||||
'*fixtures used by test_arg3*',
|
||||
'*from 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*',
|
||||
'*from 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*',
|
||||
'*from 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',
|
||||
])
|
Loading…
Reference in New Issue