Always report error about parametrize data that doesn't correspond to fixtures in test functions.
This commit is contained in:
parent
f7bacd169e
commit
06585f5bdd
|
@ -893,15 +893,14 @@ class Metafunc(FuncargnamesCompatAttr):
|
||||||
scope = "function"
|
scope = "function"
|
||||||
scopenum = scopes.index(scope)
|
scopenum = scopes.index(scope)
|
||||||
valtypes = {}
|
valtypes = {}
|
||||||
|
for arg in argnames:
|
||||||
|
if arg not in self.fixturenames:
|
||||||
|
raise ValueError("%r uses no fixture %r" %(self.function, arg))
|
||||||
|
|
||||||
if indirect is True:
|
if indirect is True:
|
||||||
valtypes = dict.fromkeys(argnames, "params")
|
valtypes = dict.fromkeys(argnames, "params")
|
||||||
elif indirect is False:
|
elif indirect is False:
|
||||||
valtypes = dict.fromkeys(argnames, "funcargs")
|
valtypes = dict.fromkeys(argnames, "funcargs")
|
||||||
#XXX should we also check for the opposite case?
|
|
||||||
for arg in argnames:
|
|
||||||
if arg not in self.fixturenames:
|
|
||||||
raise ValueError("%r uses no fixture %r" %(
|
|
||||||
self.function, arg))
|
|
||||||
elif isinstance(indirect, (tuple, list)):
|
elif isinstance(indirect, (tuple, list)):
|
||||||
valtypes = dict.fromkeys(argnames, "funcargs")
|
valtypes = dict.fromkeys(argnames, "funcargs")
|
||||||
for arg in indirect:
|
for arg in indirect:
|
||||||
|
|
|
@ -214,12 +214,11 @@ class TestMetafunc:
|
||||||
metafunc = self.Metafunc(func)
|
metafunc = self.Metafunc(func)
|
||||||
metafunc.parametrize('x', [1], indirect=True)
|
metafunc.parametrize('x', [1], indirect=True)
|
||||||
metafunc.parametrize('y', [2,3], indirect=True)
|
metafunc.parametrize('y', [2,3], indirect=True)
|
||||||
metafunc.parametrize('unnamed', [1], indirect=True)
|
|
||||||
assert len(metafunc._calls) == 2
|
assert len(metafunc._calls) == 2
|
||||||
assert metafunc._calls[0].funcargs == {}
|
assert metafunc._calls[0].funcargs == {}
|
||||||
assert metafunc._calls[1].funcargs == {}
|
assert metafunc._calls[1].funcargs == {}
|
||||||
assert metafunc._calls[0].params == dict(x=1,y=2, unnamed=1)
|
assert metafunc._calls[0].params == dict(x=1,y=2)
|
||||||
assert metafunc._calls[1].params == dict(x=1,y=3, unnamed=1)
|
assert metafunc._calls[1].params == dict(x=1,y=3)
|
||||||
|
|
||||||
@pytest.mark.issue714
|
@pytest.mark.issue714
|
||||||
def test_parametrize_indirect_list(self):
|
def test_parametrize_indirect_list(self):
|
||||||
|
|
Loading…
Reference in New Issue