def _validate_component_result(self, result):
        # Component result can be empty
        if result == None:
            return True

        if not isinstance(result, dict):
            raise ValidationError("Component result must be dictionary")

        for name, component in result.iteritems():
            try:
                self._validate_msg(component['messages'])
            except KeyError:
                raise ValidationError("Component %s doesn't have message" % name)

            try:
                self._validate_status(component['status'])
            except KeyError:
                raise ValidationError("Component %s doesn't have status" % name)
Validate componentResults
dataset/ETHPy150Open gooddata/smoker/smoker/server/plugins/__init__.py/Result._validate_component_result