4 """Tests for :func:`basf2.set_module_parameters`"""
11 """Test fixture to check setting of parameters for modules in a path by name"""
14 """Setup a path with a few EventInfoSetter modules with special names"""
16 self.
m1 = basf2.register_module(
"EventInfoSetter")
17 self.
m1.set_name(
"evt1")
19 self.
m2 = basf2.register_module(
"EventInfoSetter")
20 self.
m2.set_name(
"evt2")
22 self.
m3 = basf2.register_module(
"EventInfoSetter")
23 self.
m3.set_name(
"evt1")
25 self.
path = basf2.create_path()
28 self.
path.add_module(self.
m1)
29 self.
path.add_module(self.
m2)
33 """Check if the parameters of a module are set explicitly to a given value
35 module: basf2.Module instance
36 params: named parameters of to check for
38 for p
in module.available_params():
40 self.assertTrue(p.setInSteering)
41 self.assertEqual(p.values, params[p.name])
44 """Check that all parameters of a given module are not set explicitely"""
45 for p
in module.available_params():
46 self.assertFalse(p.setInSteering)
49 """Check setting the parameters for one module and that it does not affect the other modules"""
51 basf2.set_module_parameters(self.
path,
"evt1", evtNumList=[1, 2, 3])
55 basf2.set_module_parameters(self.
path,
"evt2", evtNumList=[4])
61 """Check that it also works if more than one module with the name exists"""
62 self.
path.add_module(self.
m3)
63 basf2.set_module_parameters(self.
path,
"evt1", evtNumList=[1, 2, 3])
69 """Make sure that not supplying any parameters gives a ValueError"""
70 with self.assertRaises(ValueError):
71 basf2.set_module_parameters(self.
path,
"evt1")
74 """Make sure that not finding any module of the given name raises a KeyError"""
75 with self.assertRaises(KeyError):
76 basf2.set_module_parameters(self.
path,
"evt3", evtNumList=[0])
79 """Make sure that being unable to set the parameter raises a RuntimeError"""
80 with self.assertRaises(RuntimeError):
81 basf2.set_module_parameters(self.
path,
"evt1", foo=
"bar")
84 """check that modules in a condition sub path are not affected by default"""
86 basf2.set_module_parameters(self.
path,
"evt1", evtNumList=[1, 2, 3])
92 """check that modules in a condition sub path are affected in recursive mode"""
94 basf2.set_module_parameters(self.
path,
"evt1", evtNumList=[1, 2, 3], recursive=
True)
100 """check that modules in a for_each sub path are not affected by default"""
102 basf2.set_module_parameters(self.
path,
"evt1", evtNumList=[1, 2, 3])
108 """check that modules in a for_each sub path are affected in recursive mode"""
110 basf2.set_module_parameters(self.
path,
"evt1", evtNumList=[1, 2, 3], recursive=
True)
116 """check that it also works with a conditions and a for_each sub path in recursive mode"""
117 sub2 = basf2.create_path()
118 m4 = sub2.add_module(
"EventInfoSetter")
121 self.
path.for_each(
"foo",
"foos", sub2)
122 basf2.set_module_parameters(self.
path,
"evt1", evtNumList=[1, 2, 3], recursive=
True)
129 if __name__ ==
'__main__':