diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index ef1f0e8..9465906 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -894,6 +894,12 @@ def new_issue(repo, username=None, namespace=None): flask.g.fas_user.username)) try: + priority = None + if repo.default_priority: + for key, val in repo.priorities.items(): + if repo.default_priority == val: + priority = key + issue = pagure.lib.new_issue( SESSION, repo=repo, @@ -901,6 +907,7 @@ def new_issue(repo, username=None, namespace=None): content=content, private=private or False, user=flask.g.fas_user.username, + priority=priority, ticketfolder=APP.config['TICKETS_FOLDER'], ) SESSION.commit() diff --git a/tests/test_pagure_flask_ui_priorities.py b/tests/test_pagure_flask_ui_priorities.py index e47e8f7..089b369 100644 --- a/tests/test_pagure_flask_ui_priorities.py +++ b/tests/test_pagure_flask_ui_priorities.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """ - (c) 2016 - Copyright Red Hat Inc + (c) 2016-2017 - Copyright Red Hat Inc Authors: Pierre-Yves Chibon @@ -46,7 +46,6 @@ class PagureFlaskPrioritiestests(tests.Modeltests): pagure.ui.repo.SESSION = self.session pagure.ui.issues.SESSION = self.session - @patch('pagure.lib.git.update_git') @patch('pagure.lib.notify.send_email') def test_ticket_with_no_priority(self, p_send_email, p_ugt): @@ -672,6 +671,52 @@ class PagureFlaskPrioritiestests(tests.Modeltests): # Default priority is now None self.assertIsNone(repo.default_priority) + @patch('pagure.lib.git.update_git', MagicMock(return_value=True)) + @patch('pagure.lib.notify.send_email', MagicMock(return_value=True)) + def test_default_priority_on_new_ticket(self): + """ Test updating the default priority of a repo. """ + tests.create_projects(self.session) + tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True) + + # Set some priority and the default one + repo = pagure.get_authorized_project(self.session, 'test') + repo.priorities = {'1': 'High', '2': 'Normal'} + repo.default_priority = 'Normal' + self.session.add(repo) + self.session.commit() + + # Check the default priorities + repo = pagure.get_authorized_project(self.session, 'test') + self.assertEqual(repo.priorities, {u'1': u'High', u'2': u'Normal'}) + self.assertEqual(repo.default_priority, 'Normal') + + user = tests.FakeUser() + user.username = 'pingou' + with tests.user_set(pagure.APP, user): + + csrf_token = self.get_csrf() + + data = { + 'title': 'Test issue', + 'issue_content': 'We really should improve on this issue', + 'status': 'Open', + 'csrf_token': csrf_token, + } + output = self.app.post( + '/test/new_issue', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + 'Issue #1: Test issue - test - Pagure', + output.data) + self.assertIn( + '', + output.data) + + repo = pagure.get_authorized_project(self.session, 'test') + self.assertEqual(len(repo.issues), 1) + self.assertEqual(repo.issues[0].priority, 2) + if __name__ == '__main__': unittest.main(verbosity=2)