From 2c3c0bb42b18ea7a835fd7947b27bcc50f124fde Mon Sep 17 00:00:00 2001 From: Vivek Anand Date: Mar 03 2017 15:00:57 +0000 Subject: Unit test: view issue when user has commit access in repo Signed-off-by: Vivek Anand --- diff --git a/tests/test_pagure_flask_ui_issues.py b/tests/test_pagure_flask_ui_issues.py index a4b5f80..19b2485 100644 --- a/tests/test_pagure_flask_ui_issues.py +++ b/tests/test_pagure_flask_ui_issues.py @@ -1117,6 +1117,269 @@ class PagureFlaskIssuestests(tests.Modeltests): @patch('pagure.lib.git.update_git') @patch('pagure.lib.notify.send_email') + def test_view_issue_commit_access(self, p_send_email, p_ugt): + """ Test the view_issue endpoint. when a user has commit access on repo """ + p_send_email.return_value = True + p_ugt.return_value = True + + output = self.app.get('/foo/issue/1') + self.assertEqual(output.status_code, 404) + + tests.create_projects(self.session) + tests.create_projects_git( + os.path.join(self.path), bare=True) + + output = self.app.get('/test/issue/1') + self.assertEqual(output.status_code, 404) + + # Create issues to play with + repo = pagure.lib.get_project(self.session, 'test') + + # Add user 'foo' with ticket access on repo + msg = pagure.lib.add_user_to_project( + self.session, + repo, + new_user='foo', + user='pingou', + access='commit', + ) + self.assertEqual(msg, 'User added') + self.session.commit() + + repo = pagure.lib.get_project(self.session, 'test') + msg = pagure.lib.new_issue( + session=self.session, + repo=repo, + title='Test issue', + content='We should work on this', + user='pingou', + ticketfolder=None + ) + + self.session.commit() + self.assertEqual(msg.title, 'Test issue') + + # Add milestone + repo.milestones = {'77': None} + self.session.add(repo) + issue = pagure.lib.search_issues( + self.session, + repo=repo, + issueid=1 + ) + + pagure.lib.edit_issue( + self.session, + issue, + pagure.APP.config.get('TICKETS_FOLDER'), + user='pingou', + milestone='77' + ) + self.session.add(repo) + self.session.add(issue) + + msg = pagure.lib.set_custom_key_fields( + self.session, + project=repo, + fields=['abc', 'xyz'], + types=['boolean', 'boolean'], + data=[None, None], + ) + self.assertEqual(msg, 'List of custom fields updated') + self.session.add(repo) + + msg = pagure.lib.set_custom_key_value( + self.session, + issue=issue, + key=pagure.lib.get_custom_key(self.session, repo, 'abc'), + value=1 + ) + self.session.add(issue) + self.session.commit() + + + output = self.app.get('/test/issue/1') + self.assertEqual(output.status_code, 200) + # Not authentified = No edit + self.assertNotIn( + '', + output.data) + self.assertTrue( + '' + 'Login\n to comment on this ticket.' + in output.data) + + user = tests.FakeUser() + with tests.user_set(pagure.APP, user): + output = self.app.get('/test/issue/1') + self.assertEqual(output.status_code, 200) + # Not author nor admin = No edit + self.assertNotIn( + '', + output.data) + self.assertNotIn( + '