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'>