@@ -67,19 +67,7 @@ def test_algorithms(self):
6767 algorithm_tests = yaml .load (stream )
6868
6969 for algtest in algorithm_tests ['tests' ]:
70- expectFailure = False
71- if 'expectedFailure' in algtest :
72- exec ('\n ' .join (algtest ['expectedFailure' ][:- 1 ]))
73- expectFailure = eval (algtest ['expectedFailure' ][- 1 ])
74- if expectFailure :
75- try :
76- yield self .check_algorithm , algtest ['name' ], algtest
77- except Exception :
78- pass
79- else :
80- raise _UnexpectedSuccess
81- else :
82- yield self .check_algorithm , algtest ['name' ], algtest
70+ yield self .check_algorithm , algtest ['name' ], algtest
8371
8472 def check_algorithm (self , name , defs ):
8573 """
@@ -101,9 +89,25 @@ def check_algorithm(self, name, defs):
10189 for r , p in defs ['results' ].iteritems ():
10290 alg .setOutputValue (r , self .load_result_param (p ))
10391
104- print (alg .getAsCommand ())
105- self .assertTrue (AlgorithmExecutor .runalg (alg ))
106- self .check_results (alg .getOutputValuesAsDictionary (), defs ['results' ])
92+ expectFailure = False
93+ if 'expectedFailure' in defs :
94+ exec ('\n ' .join (defs ['expectedFailure' ][:- 1 ])) in globals (), locals ()
95+ expectFailure = eval (defs ['expectedFailure' ][- 1 ])
96+
97+ def doCheck ():
98+ print (alg .getAsCommand ())
99+ self .assertTrue (AlgorithmExecutor .runalg (alg ))
100+ self .check_results (alg .getOutputValuesAsDictionary (), defs ['results' ])
101+
102+ if expectFailure :
103+ try :
104+ doCheck ()
105+ except Exception :
106+ pass
107+ else :
108+ raise _UnexpectedSuccess
109+ else :
110+ doCheck ()
107111
108112 def load_params (self , params ):
109113 """
0 commit comments