Fix custom name for yield_fixtures

This commit is contained in:
Bruno Oliveira 2016-06-07 20:05:07 -03:00
parent 366879db27
commit d712428d33
2 changed files with 15 additions and 16 deletions

View File

@ -175,7 +175,7 @@ def fixture(scope="function", params=None, autouse=False, ids=None, name=None):
params = list(params)
return FixtureFunctionMarker(scope, params, autouse, ids=ids, name=name)
def yield_fixture(scope="function", params=None, autouse=False, ids=None):
def yield_fixture(scope="function", params=None, autouse=False, ids=None, name=None):
""" (return a) decorator to mark a yield-fixture factory function
(EXPERIMENTAL).
@ -184,12 +184,12 @@ def yield_fixture(scope="function", params=None, autouse=False, ids=None):
statement to provide a fixture. See
http://pytest.org/en/latest/yieldfixture.html for more info.
"""
if callable(scope) and params is None and autouse == False:
if callable(scope) and params is None and not autouse:
# direct decoration
return FixtureFunctionMarker(
"function", params, autouse, yieldctx=True)(scope)
"function", params, autouse, name=name, yieldctx=True, ids=ids)(scope)
else:
return FixtureFunctionMarker(scope, params, autouse,
return FixtureFunctionMarker(scope, params, autouse, name=name,
yieldctx=True, ids=ids)
defaultfuncargprefixmarker = fixture()

View File

@ -2693,15 +2693,14 @@ class TestContextManagerFixtureFuncs:
*test_yields*:2*
""")
# TODO: yield_fixture should work as well (this is bugged right now)
def test_custom_name(testdir):
testdir.makepyfile("""
import pytest
@pytest.fixture(name='meow')
def arg1():
return 'mew'
def test_1(meow):
print(meow)
""")
result = testdir.runpytest("-s")
result.stdout.fnmatch_lines("*mew*")
def test_custom_name(self, testdir, flavor):
testdir.makepyfile("""
import pytest
@pytest.{flavor}(name='meow')
def arg1():
return 'mew'
def test_1(meow):
print(meow)
""".format(flavor=flavor))
result = testdir.runpytest("-s")
result.stdout.fnmatch_lines("*mew*")