BusinessTemplate_getPythonSourceCodeMessageList: Retry in case of pylint internal failure.
Pylint, at least our current version (still 1.4.4 as some more recent versions are apparently much slower), may choke on some imports on the first validation since Zope was started, only to later succeed. Hypothesis is that it fails to analyse some imported modules, leaving empty shells behind in some cache, making a second test avoid the error. Here is one such error: File "eggs/astroid-1.3.8-py2.7.egg/astroid/bases.py", line 86, in cache_generator for result in generator: File "eggs/astroid-1.3.8-py2.7.egg/astroid/bases.py", line 327, in wrapped for res in _func(node, context, **kwargs): File "eggs/astroid-1.3.8-py2.7.egg/astroid/bases.py", line 351, in wrapper for node in func(*args, **kwargs): File "eggs/astroid-1.3.8-py2.7.egg/astroid/inference.py", line 190, in infer_callfunc for callee in self.func.infer(context): File "eggs/astroid-1.3.8-py2.7.egg/astroid/bases.py", line 86, in cache_generator for result in generator: File "eggs/astroid-1.3.8-py2.7.egg/astroid/bases.py", line 327, in wrapped for res in _func(node, context, **kwargs): File "eggs/astroid-1.3.8-py2.7.egg/astroid/bases.py", line 351, in wrapper for node in func(*args, **kwargs): File "eggs/astroid-1.3.8-py2.7.egg/astroid/inference.py", line 247, in infer_getattr for obj in owner.igetattr(self.attrname, context): File "eggs/astroid-1.3.8-py2.7.egg/astroid/bases.py", line 187, in igetattr context.push((self._proxied, name)) File "eggs/astroid-1.3.8-py2.7.egg/astroid/raw_building.py", line 360, in _set_proxied return _CONST_PROXY[const.value.__class__] KeyError: <type 'CompiledFFI'>