def check_simple_method(self): class C(object): @parametrize(x=100, z=300) def function(self, x=1, y=2, z=3): return x, y, z assert parametrized(C.function) injected_args_list = [m.injected_args for m in C.function.marks] assert len(injected_args_list) == 1 assert injected_args_list[0] == {"x": 100, "z": 300} context_list = MarkedFunctionExpander(None, function=C.function).expand() all_f = [cxt.function for cxt in context_list] assert all_f[0](C()) == (100, 2, 300)
def check_simple(self): @matrix(x=[1, 2], y=[-1, -2]) def function(x=1, y=2, z=3): return x, y, z assert parametrized(function) injected_args_list = [m.injected_args for m in function.marks] assert len(injected_args_list) == 1 context_list = MarkedFunctionExpander(None, function=function).expand() assert len(context_list) == 4 for ctx in context_list: f = ctx.function injected_args = ctx.injected_args assert f() == (injected_args['x'], injected_args['y'], 3)
def check_stacked(self): @parametrize(x=100, y=200, z=300) @parametrize(x=100, z=300) @parametrize(y=200) @parametrize() def function(x=1, y=2, z=3): return x, y, z assert parametrized(function) injected_args_list = [m.injected_args for m in function.marks] assert len(injected_args_list) == 4 context_list = MarkedFunctionExpander(None, function=function).expand() all_f = [cxt.function for cxt in context_list] assert all_f[0]() == (100, 200, 300) assert all_f[1]() == (100, 2, 300) assert all_f[2]() == (1, 200, 3) assert all_f[3]() == (1, 2, 3)
def check_stacked(self): @matrix(x=[1, 2], y=[0]) @matrix(x=[-1], z=[-10]) def function(x=1, y=2, z=3): return x, y, z assert parametrized(function) injected_args_list = [m.injected_args for m in function.marks] assert len(injected_args_list) == 2 context_list = MarkedFunctionExpander(None, function=function).expand() assert len(context_list) == 3 expected_output = {(1, 0, 3), (2, 0, 3), (-1, 2, -10)} output = set() for c in context_list: output.add(c.function()) assert output == expected_output