_core.py 716 B

1234567891011121314151617181920212223
  1. from pluggy import PluginManager
  2. from allure_commons import _hooks
  3. class MetaPluginManager(type):
  4. _plugin_manager: PluginManager = None
  5. @staticmethod
  6. def get_plugin_manager():
  7. if not MetaPluginManager._plugin_manager:
  8. MetaPluginManager._plugin_manager = PluginManager('allure')
  9. MetaPluginManager._plugin_manager.add_hookspecs(_hooks.AllureUserHooks)
  10. MetaPluginManager._plugin_manager.add_hookspecs(_hooks.AllureDeveloperHooks)
  11. return MetaPluginManager._plugin_manager
  12. def __getattr__(cls, attr):
  13. pm = MetaPluginManager.get_plugin_manager()
  14. return getattr(pm, attr)
  15. class plugin_manager(metaclass=MetaPluginManager):
  16. pass