Better logging when bad extension class is given.

This was necessary to debug an issue with different unit tests influencing
each other in Attract.
This commit is contained in:
2016-09-20 15:12:06 +02:00
parent 7598ad0b57
commit 40896fc70b
2 changed files with 18 additions and 5 deletions

View File

@@ -182,8 +182,13 @@ class PillarServer(Eve):
def load_extension(self, pillar_extension, url_prefix):
from .extension import PillarExtension
assert isinstance(pillar_extension, PillarExtension), \
'Extension has wrong type %r' % type(pillar_extension)
if not isinstance(pillar_extension, PillarExtension):
if self.config.get('DEBUG'):
for cls in type(pillar_extension).mro():
self.log.error('class %42r (%i) is %42r (%i): %s',
cls, id(cls), PillarExtension, id(PillarExtension),
cls is PillarExtension)
raise AssertionError('Extension has wrong type %r' % type(pillar_extension))
self.log.info('Loading extension %s', pillar_extension.name)
# Remember this extension, and disallow duplicates.