diff --git a/beat/core/execution/base.py b/beat/core/execution/base.py index 14f3dfbeced8ccc9eb666ffaf93a598538bcf9ea..a8610f5b847cda7477de501dc1aae8deb3adbc4d 100755 --- a/beat/core/execution/base.py +++ b/beat/core/execution/base.py @@ -183,6 +183,24 @@ class BaseExecutor(object): self.errors += self.algorithm.errors return + # Check that the mapping in coherent + if len(self.data['inputs']) != len(self.algorithm.input_map): + self.errors.append("The number of inputs of the algorithm doesn't correspond") + + if len(self.data['outputs']) != len(self.algorithm.output_map): + self.errors.append("The number of outputs of the algorithm doesn't correspond") + + for name in self.data['inputs'].keys(): + if name not in self.algorithm.input_map.keys(): + self.errors.append("The input '%s' doesn't exist in the algorithm" % name) + + for name in self.data['outputs'].keys(): + if name not in self.algorithm.output_map.keys(): + self.errors.append("The output '%s' doesn't exist in the algorithm" % name) + + if self.errors: + return + # Load the databases (if any is required) for name, details in self.data['inputs'].items(): if 'database' in details: