2017-01-18 21:39:47 +08:00
|
|
|
|
|
|
|
import pytest
|
|
|
|
import pprint
|
|
|
|
def pytest_generate_tests(metafunc):
|
|
|
|
if 'arg1' in metafunc.fixturenames:
|
|
|
|
metafunc.parametrize("arg1", [ 'arg1v1', 'arg1v2' ], scope='module')
|
|
|
|
|
|
|
|
if 'arg2' in metafunc.fixturenames:
|
|
|
|
metafunc.parametrize("arg2", [ 'arg2v1', 'arg2v2' ], scope='function')
|
|
|
|
|
|
|
|
@pytest.fixture(scope='session')
|
|
|
|
def checked_order():
|
|
|
|
order = []
|
|
|
|
|
|
|
|
yield order
|
|
|
|
pprint.pprint(order)
|
2017-01-18 21:51:29 +08:00
|
|
|
assert order == [
|
|
|
|
('testing/example_scripts/issue_519.py', 'fix1', 'arg1v1'),
|
|
|
|
('test_one[arg1v1-arg2v1]', 'fix2', 'arg2v1'),
|
|
|
|
('test_two[arg1v1-arg2v1]', 'fix2', 'arg2v1'),
|
|
|
|
|
|
|
|
('test_one[arg1v1-arg2v2]', 'fix2', 'arg2v2'),
|
|
|
|
('test_two[arg1v1-arg2v2]', 'fix2', 'arg2v2'),
|
|
|
|
|
|
|
|
('testing/example_scripts/issue_519.py', 'fix1', 'arg1v2'),
|
|
|
|
('test_one[arg1v2-arg2v1]', 'fix2', 'arg2v1'),
|
|
|
|
('test_two[arg1v2-arg2v1]', 'fix2', 'arg2v1'),
|
|
|
|
|
|
|
|
('test_one[arg1v2-arg2v2]', 'fix2', 'arg2v2'),
|
|
|
|
('test_two[arg1v2-arg2v2]', 'fix2', 'arg2v2'),
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2017-01-18 21:39:47 +08:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.yield_fixture(scope='module')
|
|
|
|
def fix1(request, arg1, checked_order):
|
|
|
|
checked_order.append((request.node.name, 'fix1', arg1))
|
|
|
|
yield 'fix1-' + arg1
|
|
|
|
|
|
|
|
@pytest.yield_fixture(scope='function')
|
|
|
|
def fix2(request, fix1, arg2, checked_order):
|
|
|
|
checked_order.append((request.node.name, 'fix2', arg2))
|
|
|
|
yield 'fix2-' + arg2 + fix1
|
|
|
|
|
|
|
|
def test_one(fix2):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def test_two(fix2):
|
|
|
|
pass
|