7 import validationscript
16 Various test cases for the validation module
21 Test if the interval selection works
25 with tempfile.NamedTemporaryFile()
as tf:
26 tf.write(b
'#!/usr/bin/env python3\n'
27 b
'# -*- coding: utf-8 -*-\n'
30 b
'<interval>release</interval>'
31 b
'<output>EvtGenSim.root</output>\n'
32 b
'<contact>Kilian Lieret kilian.lieret@lmu.de</contact>\n'
33 b
'<description>description_text</description>\n'
41 script = validationscript.Script(tf.name,
"package",
None)
43 self.assertTrue(interval_sel.in_interval(script))
45 with tempfile.NamedTemporaryFile()
as tf:
46 tf.write(b
'#!/usr/bin/env python3\n'
47 b
'# -*- coding: utf-8 -*-\n'
50 b
'<interval>nightly</interval>'
51 b
'<output>EvtGenSim.root</output>\n'
52 b
'<contact>Kilian Lieret kilian.lieret@lmu.de</contact>\n'
53 b
'<description>description_text</description>\n'
61 script = validationscript.Script(tf.name,
"package",
None)
63 self.assertTrue(interval_sel.in_interval(script))
67 Test if the interval selection works if there is no
68 interval setting in the validation header
70 with tempfile.NamedTemporaryFile()
as tf:
71 tf.write(b
'#!/usr/bin/env python3\n'
72 b
'# -*- coding: utf-8 -*-\n'
75 b
'<output>EvtGenSim.root</output>\n'
76 b
'<contact>Kilian Lieret kilian.lieret@lmu.de</contact>\n'
77 b
'<description>description_text</description>\n'
85 script = validationscript.Script(tf.name,
"package",
None)
89 self.assertTrue(interval_sel.in_interval(script))
93 Test if the package selection works and if the required dependecies are
97 val = validation.Validation()
99 script1 = validation.Script(
"val1.py",
"tracking",
None)
100 script2 = validation.Script(
"val2.py",
"tracking",
None)
101 script3 = validation.Script(
"valOther.py",
"other_package",
None)
102 script4 = validation.Script(
"valOtherNotDepending.py",
"other_package",
104 script2.dependencies = [script3]
106 val.add_script(script1)
107 val.add_script(script2)
108 val.add_script(script3)
109 val.add_script(script4)
112 val.apply_package_selection([
"tracking"],
False)
114 self.assertEqual(3, len(val.scripts))
118 s
for s
in val.scripts
119 if s.unique_name() == script3.unique_name()
125 s
for s
in val.scripts
126 if s.unique_name() == script4.unique_name()
130 val_no_deps = validation.Validation()
132 val_no_deps.add_script(script1)
133 val_no_deps.add_script(script2)
134 val_no_deps.add_script(script3)
135 val_no_deps.add_script(script4)
138 val_no_deps.apply_package_selection([
"tracking"],
True)
140 self.assertEqual(2, len(val_no_deps.scripts))
144 s
for s
in val_no_deps.scripts
145 if s.unique_name() == script3.unique_name()
151 Test if the interval selection works if there is no
152 interval setting in the validation header
154 with tempfile.NamedTemporaryFile()
as tf:
155 tf.write(b
'#!/usr/bin/env python3\n'
156 b
'# -*- coding: utf-8 -*-\n'
159 b
'<input>SomeIn.root</input>\n'
160 b
'<output>EvtGenSim.root</output>\n'
162 b
'<contact>Kilian Lieret kilian.lieret@lmu.de</contact>\n'
163 b
'<description>description_text</description>\n'
171 script = validationscript.Script(tf.name,
"package",
None)
173 self.assertTrue(script.is_cacheable())
174 self.assertTrue(
'EvtGenSim.root' in script.get_output_files())
175 self.assertTrue(
'SomeIn.root' in script.get_input_files())
179 Test if the meta options parsers behaves nice
182 [
"shifter",
"pvalue-warn=0.9",
"pvalue-error=0.4"]
185 self.assertEqual(0.9, p.pvalue_warn())
186 self.assertEqual(0.4, p.pvalue_error())
187 self.assertTrue(p.has_option(
"shifter"))
188 self.assertFalse(p.has_option(
"not is list"))
192 self.assertEqual(
None, p.pvalue_warn())
193 self.assertEqual(
None, p.pvalue_error())
196 if __name__ ==
"__main__":