diff --git a/tests/test_progit_flask_ui_plugins.py b/tests/test_progit_flask_ui_plugins.py
index 6c4c31f..4bdc25b 100644
--- a/tests/test_progit_flask_ui_plugins.py
+++ b/tests/test_progit_flask_ui_plugins.py
@@ -65,110 +65,6 @@ class ProgitFlaskPluginstests(tests.Modeltests):
output = self.app.get('/test/settings/Mail')
self.assertEqual(output.status_code, 403)
- def test_plugin_mail(self):
- """ Test the mail plugin on/off endpoint. """
-
- tests.create_projects(self.session)
-
- user = tests.FakeUser(username='pingou')
- with tests.user_set(progit.APP, user):
- output = self.app.get('/test/settings/Mail')
- self.assertEqual(output.status_code, 200)
- self.assertTrue('
test project #1
' in output.data)
- self.assertTrue('Mail
' in output.data)
- self.assertTrue(
- ' | '
- in output.data)
- self.assertTrue(
- ''
- in output.data)
-
- csrf_token = output.data.split(
- 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
-
- data = {}
-
- output = self.app.post('/test/settings/Mail', data=data)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('test project #1
' in output.data)
- self.assertTrue('Mail
' in output.data)
- self.assertTrue(
- ' | '
- in output.data)
- self.assertTrue(
- ''
- in output.data)
-
- data['csrf_token'] = csrf_token
- # No git found
- output = self.app.post('/test/settings/Mail', data=data)
- self.assertEqual(output.status_code, 404)
-
- tests.create_projects_git(tests.HERE)
-
- # With the git repo
- output = self.app.post('/test/settings/Mail', data=data)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('test project #1
' in output.data)
- self.assertTrue('Mail
' in output.data)
- self.assertTrue(
- 'Hook inactived' in output.data)
- self.assertTrue(
- ' | '
- in output.data)
- self.assertTrue(
- ''
- in output.data)
-
- # Missing the required mail_to
- data = {'csrf_token': csrf_token, 'active': 'y'}
-
- output = self.app.post('/test/settings/Mail', data=data)
- self.assertTrue('test project #1
' in output.data)
- self.assertTrue('Mail
' in output.data)
- self.assertFalse(
- 'Hook activated' in output.data)
- self.assertTrue(
- ''
- '\nThis field is required. | '
- in output.data)
- self.assertTrue(
- '' in output.data)
-
- # Activate hook
- data = {
- 'csrf_token': csrf_token,
- 'active': 'y',
- 'mail_to': 'foo@bar'
- }
-
- output = self.app.post('/test/settings/Mail', data=data)
- self.assertTrue('test project #1
' in output.data)
- self.assertTrue('Mail
' in output.data)
- self.assertTrue(
- 'Hook activated' in output.data)
- self.assertTrue(
- ' | '
- in output.data)
- self.assertTrue(
- '' in output.data)
-
- # De-Activate hook
- data = {'csrf_token': csrf_token}
- output = self.app.post('/test/settings/Mail', data=data)
- self.assertTrue('test project #1
' in output.data)
- self.assertTrue('Mail
' in output.data)
- self.assertTrue(
- 'Hook inactived' in output.data)
- self.assertTrue(
- ' | '
- in output.data)
- self.assertTrue(
- '' in output.data)
-
if __name__ == '__main__':
SUITE = unittest.TestLoader().loadTestsFromTestCase(ProgitFlaskPluginstests)
diff --git a/tests/test_progit_flask_ui_plugins_mail.py b/tests/test_progit_flask_ui_plugins_mail.py
new file mode 100644
index 0000000..14f8c9e
--- /dev/null
+++ b/tests/test_progit_flask_ui_plugins_mail.py
@@ -0,0 +1,159 @@
+# -*- coding: utf-8 -*-
+
+"""
+ (c) 2015 - Copyright Red Hat Inc
+
+ Authors:
+ Pierre-Yves Chibon
+
+"""
+
+__requires__ = ['SQLAlchemy >= 0.8']
+import pkg_resources
+
+import json
+import unittest
+import shutil
+import sys
+import os
+
+import pygit2
+from mock import patch
+
+sys.path.insert(0, os.path.join(os.path.dirname(
+ os.path.abspath(__file__)), '..'))
+
+import progit.lib
+import tests
+
+
+class ProgitFlaskPluginstests(tests.Modeltests):
+ """ Tests for flask plugins controller of progit """
+
+ def setUp(self):
+ """ Set up the environnment, ran before every tests. """
+ super(ProgitFlaskPluginstests, self).setUp()
+
+ progit.APP.config['TESTING'] = True
+ progit.SESSION = self.session
+ progit.ui.SESSION = self.session
+ progit.ui.app.SESSION = self.session
+ progit.ui.plugins.SESSION = self.session
+
+ progit.APP.config['GIT_FOLDER'] = tests.HERE
+ progit.APP.config['FORK_FOLDER'] = os.path.join(
+ tests.HERE, 'forks')
+ progit.APP.config['TICKETS_FOLDER'] = os.path.join(
+ tests.HERE, 'tickets')
+ progit.APP.config['DOCS_FOLDER'] = os.path.join(
+ tests.HERE, 'docs')
+ self.app = progit.APP.test_client()
+
+ def test_plugin_mail(self):
+ """ Test the mail plugin on/off endpoint. """
+
+ tests.create_projects(self.session)
+
+ user = tests.FakeUser(username='pingou')
+ with tests.user_set(progit.APP, user):
+ output = self.app.get('/test/settings/Mail')
+ self.assertEqual(output.status_code, 200)
+ self.assertTrue('test project #1
' in output.data)
+ self.assertTrue('Mail
' in output.data)
+ self.assertTrue(
+ ' | '
+ in output.data)
+ self.assertTrue(
+ ''
+ in output.data)
+
+ csrf_token = output.data.split(
+ 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
+
+ data = {}
+
+ output = self.app.post('/test/settings/Mail', data=data)
+ self.assertEqual(output.status_code, 200)
+ self.assertTrue('test project #1
' in output.data)
+ self.assertTrue('Mail
' in output.data)
+ self.assertTrue(
+ ' | '
+ in output.data)
+ self.assertTrue(
+ ''
+ in output.data)
+
+ data['csrf_token'] = csrf_token
+ # No git found
+ output = self.app.post('/test/settings/Mail', data=data)
+ self.assertEqual(output.status_code, 404)
+
+ tests.create_projects_git(tests.HERE)
+
+ # With the git repo
+ output = self.app.post('/test/settings/Mail', data=data)
+ self.assertEqual(output.status_code, 200)
+ self.assertTrue('test project #1
' in output.data)
+ self.assertTrue('Mail
' in output.data)
+ self.assertTrue(
+ 'Hook inactived' in output.data)
+ self.assertTrue(
+ ' | '
+ in output.data)
+ self.assertTrue(
+ ''
+ in output.data)
+
+ # Missing the required mail_to
+ data = {'csrf_token': csrf_token, 'active': 'y'}
+
+ output = self.app.post('/test/settings/Mail', data=data)
+ self.assertTrue('test project #1
' in output.data)
+ self.assertTrue('Mail
' in output.data)
+ self.assertFalse(
+ 'Hook activated' in output.data)
+ self.assertTrue(
+ ''
+ '\nThis field is required. | '
+ in output.data)
+ self.assertTrue(
+ '' in output.data)
+
+ # Activate hook
+ data = {
+ 'csrf_token': csrf_token,
+ 'active': 'y',
+ 'mail_to': 'foo@bar'
+ }
+
+ output = self.app.post('/test/settings/Mail', data=data)
+ self.assertTrue('test project #1
' in output.data)
+ self.assertTrue('Mail
' in output.data)
+ self.assertTrue(
+ 'Hook activated' in output.data)
+ self.assertTrue(
+ ' | '
+ in output.data)
+ self.assertTrue(
+ '' in output.data)
+
+ # De-Activate hook
+ data = {'csrf_token': csrf_token}
+ output = self.app.post('/test/settings/Mail', data=data)
+ self.assertTrue('test project #1
' in output.data)
+ self.assertTrue('Mail
' in output.data)
+ self.assertTrue(
+ 'Hook inactived' in output.data)
+ self.assertTrue(
+ ' | '
+ in output.data)
+ self.assertTrue(
+ '' in output.data)
+
+
+if __name__ == '__main__':
+ SUITE = unittest.TestLoader().loadTestsFromTestCase(ProgitFlaskPluginstests)
+ unittest.TextTestRunner(verbosity=2).run(SUITE)