diff --git a/tests/test_pagure_flask_ui_plugins_default_hook.py b/tests/test_pagure_flask_ui_plugins_default_hook.py index 32c2b93..5993265 100644 --- a/tests/test_pagure_flask_ui_plugins_default_hook.py +++ b/tests/test_pagure_flask_ui_plugins_default_hook.py @@ -19,8 +19,9 @@ import shutil import sys import os +import flask import pygit2 -from mock import patch +from mock import patch, MagicMock sys.path.insert(0, os.path.join(os.path.dirname( os.path.abspath(__file__)), '..')) @@ -76,6 +77,84 @@ class PagureFlaskPluginDefaultHooktests(tests.Modeltests): self.assertTrue(os.path.exists(os.path.join( self.path, 'repos', 'test.git', 'hooks', 'post-receive'))) + def test_plugin_default_remove(self): + """ Check that the default plugin can be correctly removed if + somehow managed. + """ + + task = pagure.lib.new_project( + self.session, + user='pingou', + name='test', + blacklist=[], + allowed_prefix=[], + gitfolder=os.path.join(self.path, 'repos'), + docfolder=os.path.join(self.path, 'docs'), + ticketfolder=os.path.join(self.path, 'tickets'), + requestfolder=os.path.join(self.path, 'requests'), + description=None, + url=None, avatar_email=None, + parent_id=None, + add_readme=False, + userobj=None, + prevent_40_chars=False, + namespace=None + ) + self.assertEqual(task.get(), + {'endpoint': 'ui_ns.view_repo', + 'repo': 'test', + 'namespace': None}) + + repo = pagure.lib.get_authorized_project(self.session, 'test') + plugin = pagure.lib.plugins.get_plugin('default') + dbobj = plugin.db_object() + + plugin.remove(repo) + + self.assertFalse(os.path.exists(os.path.join( + self.path, 'repos', 'test.git', 'hooks', 'post-receive.default'))) + self.assertTrue(os.path.exists(os.path.join( + self.path, 'repos', 'test.git', 'hooks', 'post-receive'))) + + def test_plugin_default_form(self): + """ Check that the default plugin's form. + """ + with self._app.test_request_context('/') as ctx: + flask.g.session = self.session + flask.g.fas_user = tests.FakeUser(username='foo') + + task = pagure.lib.new_project( + self.session, + user='pingou', + name='test', + blacklist=[], + allowed_prefix=[], + gitfolder=os.path.join(self.path, 'repos'), + docfolder=os.path.join(self.path, 'docs'), + ticketfolder=os.path.join(self.path, 'tickets'), + requestfolder=os.path.join(self.path, 'requests'), + description=None, + url=None, avatar_email=None, + parent_id=None, + add_readme=False, + userobj=None, + prevent_40_chars=False, + namespace=None + ) + self.assertEqual(task.get(), + {'endpoint': 'ui_ns.view_repo', + 'repo': 'test', + 'namespace': None}) + + repo = pagure.lib.get_authorized_project(self.session, 'test') + plugin = pagure.lib.plugins.get_plugin('default') + dbobj = plugin.db_object() + form = plugin.form(obj=dbobj) + self.assertEqual( + str(form.active), + '' + ) + if __name__ == '__main__': unittest.main(verbosity=2)