diff --git a/_pytest/python.py b/_pytest/python.py index bf9be9f12..e50c7909d 100644 --- a/_pytest/python.py +++ b/_pytest/python.py @@ -893,15 +893,14 @@ class Metafunc(FuncargnamesCompatAttr): scope = "function" scopenum = scopes.index(scope) 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: valtypes = dict.fromkeys(argnames, "params") elif indirect is False: 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)): valtypes = dict.fromkeys(argnames, "funcargs") for arg in indirect: diff --git a/testing/python/metafunc.py b/testing/python/metafunc.py index b4395c2c8..6ef80eeea 100644 --- a/testing/python/metafunc.py +++ b/testing/python/metafunc.py @@ -214,12 +214,11 @@ class TestMetafunc: metafunc = self.Metafunc(func) metafunc.parametrize('x', [1], indirect=True) metafunc.parametrize('y', [2,3], indirect=True) - metafunc.parametrize('unnamed', [1], indirect=True) assert len(metafunc._calls) == 2 assert metafunc._calls[0].funcargs == {} assert metafunc._calls[1].funcargs == {} - assert metafunc._calls[0].params == dict(x=1,y=2, unnamed=1) - assert metafunc._calls[1].params == dict(x=1,y=3, unnamed=1) + assert metafunc._calls[0].params == dict(x=1,y=2) + assert metafunc._calls[1].params == dict(x=1,y=3) @pytest.mark.issue714 def test_parametrize_indirect_list(self):