no longer check if indirect metafunc.parametrize params are funcarg names
This commit is contained in:
parent
87b8769680
commit
2ca6d9f039
|
@ -10,6 +10,7 @@ Changes between 2.2.1 and 2.2.2.dev
|
||||||
- fix issue106: allow parametrize to be applied multiple times
|
- fix issue106: allow parametrize to be applied multiple times
|
||||||
e.g. from module, class and at function level.
|
e.g. from module, class and at function level.
|
||||||
- fix issue107: actually perform session scope finalization
|
- fix issue107: actually perform session scope finalization
|
||||||
|
- don't check in parametrize if indirect parameters are funcarg names
|
||||||
- add chdir method to monkeypatch funcarg
|
- add chdir method to monkeypatch funcarg
|
||||||
- fix crash resulting from calling monkeypatch undo a second time
|
- fix crash resulting from calling monkeypatch undo a second time
|
||||||
- extend reports accepting kwargs to set arbitrary additional attributes
|
- extend reports accepting kwargs to set arbitrary additional attributes
|
||||||
|
|
|
@ -629,9 +629,11 @@ class Metafunc:
|
||||||
if not isinstance(argnames, (tuple, list)):
|
if not isinstance(argnames, (tuple, list)):
|
||||||
argnames = (argnames,)
|
argnames = (argnames,)
|
||||||
argvalues = [(val,) for val in argvalues]
|
argvalues = [(val,) for val in argvalues]
|
||||||
for arg in argnames:
|
if not indirect:
|
||||||
if arg not in self.funcargnames:
|
#XXX should we also check for the opposite case?
|
||||||
raise ValueError("%r has no argument %r" %(self.function, arg))
|
for arg in argnames:
|
||||||
|
if arg not in self.funcargnames:
|
||||||
|
raise ValueError("%r has no argument %r" %(self.function, arg))
|
||||||
valtype = indirect and "params" or "funcargs"
|
valtype = indirect and "params" or "funcargs"
|
||||||
if not ids:
|
if not ids:
|
||||||
idmaker = IDMaker()
|
idmaker = IDMaker()
|
||||||
|
|
|
@ -983,11 +983,12 @@ class TestMetafunc:
|
||||||
metafunc = funcargs.Metafunc(func)
|
metafunc = funcargs.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)
|
assert metafunc._calls[0].params == dict(x=1,y=2, unnamed=1)
|
||||||
assert metafunc._calls[1].params == dict(x=1,y=3)
|
assert metafunc._calls[1].params == dict(x=1,y=3, unnamed=1)
|
||||||
|
|
||||||
def test_addcalls_and_parametrize_indirect(self):
|
def test_addcalls_and_parametrize_indirect(self):
|
||||||
def func(x, y): pass
|
def func(x, y): pass
|
||||||
|
|
Loading…
Reference in New Issue