From 392277c0ef648063eddb3452ffd70d25871a0d7b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Feb 05 2018 14:37:12 +0000 Subject: [PATCH 1/3] Fix running the unit-tests In de8a0a0635b722ae1f824b66b5674e58935617c5 we changed is_admin() to rely on flask.g.authenticated instead of calling the function one more time. Except that this broke a few unit-tests and the API login which didn't have this attribute on flask.g. This commit fixes this. Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/api/__init__.py b/pagure/api/__init__.py index 64dbbde..a5fb764 100644 --- a/pagure/api/__init__.py +++ b/pagure/api/__init__.py @@ -130,6 +130,7 @@ def check_api_acls(acls, optional=False): if token_str: token = pagure.lib.get_api_token(flask.g.session, token_str) if token and not token.expired: + flask.g.authenticated = True if acls and set(token.acls_list).intersection(set(acls)): token_auth = True flask.g.fas_user = token.user @@ -137,6 +138,7 @@ def check_api_acls(acls, optional=False): # the CLA, so just set it to True flask.g.fas_user.cla_done = True flask.g.token = token + flask.g.authenticated = True elif not acls and optional: token_auth = True flask.g.fas_user = token.user @@ -144,6 +146,7 @@ def check_api_acls(acls, optional=False): # the CLA, so just set it to True flask.g.fas_user.cla_done = True flask.g.token = token + flask.g.authenticated = True elif optional: return diff --git a/tests/__init__.py b/tests/__init__.py index f285490..3941413 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -137,6 +137,7 @@ def user_set(APP, user): def handler(sender, **kwargs): g.fas_user = user g.fas_session_id = b'123' + g.authenticated = True with appcontext_pushed.connected_to(handler, APP): yield diff --git a/tests/test_pagure_flask.py b/tests/test_pagure_flask.py index a2c0edb..f2412a0 100644 --- a/tests/test_pagure_flask.py +++ b/tests/test_pagure_flask.py @@ -66,6 +66,7 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): g = munch.Munch() g.fas_user = tests.FakeUser(username='pingou') + g.authenticated = True with mock.patch('pagure.flask_app.flask.g', g): output = pagure.utils.is_repo_committer(repo) self.assertTrue(output) @@ -77,6 +78,7 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): g = munch.Munch() g.fas_user = tests.FakeUser() + g.authenticated = True with mock.patch('pagure.flask_app.flask.g', g): output = pagure.utils.is_repo_committer(repo) self.assertFalse(output) @@ -97,6 +99,7 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): user = tests.FakeUser() g = munch.Munch() g.fas_user = user + g.authenticated = True with mock.patch('pagure.flask_app.flask.g', g): output = pagure.utils.is_repo_committer(repo) self.assertFalse(output) @@ -112,6 +115,7 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): g = munch.Munch() g.fas_user = tests.FakeUser() g.fas_user.groups.append('provenpackager') + g.authenticated = True with mock.patch('pagure.flask_app.flask.g', g): output = pagure.utils.is_repo_committer(repo) self.assertTrue(output) @@ -133,6 +137,7 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): g = munch.Munch() g.fas_user = tests.FakeUser() g.fas_user.groups.append('provenpackager') + g.authenticated = True with mock.patch('pagure.flask_app.flask.g', g): output = pagure.utils.is_repo_committer(repo) self.assertFalse(output) @@ -152,6 +157,7 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): g = munch.Munch() g.fas_user = tests.FakeUser() + g.authenticated = True with mock.patch('pagure.flask_app.flask.g', g): output = pagure.utils.is_repo_committer(repo) self.assertFalse(output) @@ -165,6 +171,7 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): g = munch.Munch() g.fas_user = tests.FakeUser() + g.authenticated = True g.fas_user.groups.append('provenpackager') with mock.patch('pagure.flask_app.flask.g', g): output = pagure.utils.is_repo_committer(repo) @@ -180,6 +187,7 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): g = munch.Munch() g.fas_user = tests.FakeUser() + g.authenticated = True g.fas_user.groups.append('provenpackager') with mock.patch('pagure.flask_app.flask.g', g): output = pagure.utils.is_repo_committer(repo) From 75b7f936bebe178324b61288081639901f01a561 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Feb 05 2018 14:37:12 +0000 Subject: [PATCH 2/3] Fix unit-tests for the change in the milestone structure Signed-off-by: Pierre-Yves Chibon --- diff --git a/tests/test_pagure_lib_git.py b/tests/test_pagure_lib_git.py index 7ed7cf6..c3c1706 100644 --- a/tests/test_pagure_lib_git.py +++ b/tests/test_pagure_lib_git.py @@ -2089,7 +2089,9 @@ index 0000000..60f7480 self.assertEqual(repo.issues[0].blocking_text, []) self.assertEqual(repo.issues[0].milestone, 'Next Release') self.assertEqual(repo.issues[0].priority, None) - self.assertEqual(repo.milestones, {'Next Release': None}) + self.assertEqual( + repo.milestones, + {u'Next Release': {'active': True, 'date': None}}) @patch('pagure.lib.notify.send_email', MagicMock(return_value=True)) def test_update_ticket_from_git_close_ticket(self): @@ -2151,7 +2153,9 @@ index 0000000..60f7480 self.assertEqual(repo.issues[0].blocking_text, []) self.assertEqual(repo.issues[0].milestone, 'Next Release') self.assertEqual(repo.issues[0].priority, None) - self.assertEqual(repo.milestones, {'Next Release': None}) + self.assertEqual( + repo.milestones, + {u'Next Release': {'active': True, 'date': None}}) self.assertEqual(repo.issues[0].status, 'Closed') self.assertEqual(repo.issues[0].close_status, 'Fixed') self.assertEqual( @@ -2211,7 +2215,9 @@ index 0000000..60f7480 self.assertEqual(repo.issues[0].blocking_text, []) self.assertEqual(repo.issues[0].milestone, 'Next Release') self.assertEqual(repo.issues[0].priority, 1) - self.assertEqual(repo.milestones, {'Next Release': None}) + self.assertEqual( + repo.milestones, + {u'Next Release': {'active': True, 'date': None}}) data["title"] = "fake issue for tests" pagure.lib.git.update_ticket_from_git( @@ -2297,7 +2303,13 @@ index 0000000..60f7480 self.assertEqual(repo.issues[1].depending_text, []) self.assertEqual(repo.issues[1].blocking_text, [1]) self.assertEqual(repo.issues[1].milestone, 'Future') - self.assertEqual(repo.milestones, {'Future': None, 'Next Release': None}) + self.assertEqual( + repo.milestones, + { + u'Future': {'active': True, 'date': None}, + u'Next Release': {u'active': True, u'date': None} + } + ) def test_update_request_from_git(self): """ Test the update_request_from_git method from pagure.lib.git. """ From b4c3aef8fb0cd465841ab98231c8717765a57b73 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Feb 05 2018 14:37:12 +0000 Subject: [PATCH 3/3] Adjust message shown to the user deleting a tag off a project Fixes https://pagure.io/pagure/issue/2943 Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index ca7e653..03a2aea 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -781,7 +781,7 @@ def remove_tags(session, project, tags, gitfolder, user): if tagobj: tag_found = True removed_tags.append(tag) - msgs.append('Issue **un**tagged with: %s' % tag) + msgs.append('Tag: %s has been deleted' % tag) session.delete(tagobj) if not tag_found: diff --git a/tests/test_pagure_flask_ui_issues.py b/tests/test_pagure_flask_ui_issues.py index fe46be1..92cf4ff 100644 --- a/tests/test_pagure_flask_ui_issues.py +++ b/tests/test_pagure_flask_ui_issues.py @@ -2848,7 +2848,7 @@ class PagureFlaskIssuestests(tests.Modeltests): self.assertTrue("

Settings for test

" in output.data) self.assertIn( '\n ' - 'Issue **un**tagged with: tag1', output.data) + 'Tag: tag1 has been deleted', output.data) @patch('pagure.lib.git.update_git') @patch('pagure.lib.notify.send_email') diff --git a/tests/test_pagure_lib.py b/tests/test_pagure_lib.py index fdbc710..7f6ea3a 100644 --- a/tests/test_pagure_lib.py +++ b/tests/test_pagure_lib.py @@ -1053,7 +1053,7 @@ class PagureLibtests(tests.Modeltests): user='pingou', gitfolder=None) - self.assertEqual(msgs, ['Issue **un**tagged with: tag1']) + self.assertEqual(msgs, ['Tag: tag1 has been deleted']) @patch('pagure.lib.REDIS', MagicMock(return_value=True)) @patch('pagure.lib.git.update_git', MagicMock(return_value=True))