# coding=utf-8 """ (c) 2015-2018 - Copyright Red Hat Inc Authors: Slavek Kabrda """ from __future__ import unicode_literals __requires__ = ['SQLAlchemy >= 0.8'] import pkg_resources import os import sys from mock import patch sys.path.insert(0, os.path.join(os.path.dirname( os.path.abspath(__file__)), '..')) import pagure.hooks import pagure.lib.plugins import tests class EnabledForAll(pagure.hooks.BaseHook): name = "EnabledForAll" @classmethod def is_enabled_for(cls, project): return True class DisabledForAll(pagure.hooks.BaseHook): name = "DisabledForAll" # disabled for all is the default class PagureLibtests_plugins(tests.Modeltests): """ Test the pagure.lib.plugins module """ maxDiff = None @patch("pagure.lib.plugins.load") def test_plugin_is_enabled_for(self, load): """ Test the is_enabled_for method of plugins is properly handled by pagure.lib.plugins.get_enabled_plugins. """ tests.create_projects(self.session) project = pagure.lib.query._get_project(self.session, "test") load.return_value = [EnabledForAll] self.assertEqual( pagure.lib.plugins.get_enabled_plugins(project), [(EnabledForAll, None)] ) load.return_value = [DisabledForAll] self.assertEqual( pagure.lib.plugins.get_enabled_plugins(project), [] ) @patch("pagure.lib.plugins.load") def test_get_plugin_names(self, load): """ Test the get_plugin_names method with plugins that don't have backref. """ load.return_value = [EnabledForAll] self.assertEqual(pagure.lib.plugins.get_plugin_names(), []) self.assertEqual( pagure.lib.plugins.get_plugin_names(without_backref=True), ['EnabledForAll'] )