浏览代码

Expand the tests for the default hook

Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
Pierre-Yves Chibon 5 年之前
父节点
当前提交
1d97e085d5
共有 1 个文件被更改,包括 80 次插入1 次删除
  1. 80 1
      tests/test_pagure_flask_ui_plugins_default_hook.py

+ 80 - 1
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),
+                '<input id="active" name="active" type="checkbox" value="y">'
+            )
+
 
 if __name__ == '__main__':
     unittest.main(verbosity=2)