You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by je...@apache.org on 2015/04/21 11:33:41 UTC
[14/14] allura git commit: [#7866] ticket:758 Don't run can_merge
task when merge is dissabled
[#7866] ticket:758 Don't run can_merge task when merge is dissabled
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/d162d676
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/d162d676
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/d162d676
Branch: refs/heads/ib/7866
Commit: d162d676dfa780eb0dd11de2e60c714b57c78aed
Parents: f32d2c3
Author: Igor Bondarenko <je...@gmail.com>
Authored: Tue Apr 21 08:56:34 2015 +0000
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Tue Apr 21 08:56:34 2015 +0000
----------------------------------------------------------------------
Allura/allura/model/repository.py | 6 ++++--
Allura/allura/tests/model/test_repo.py | 7 +++++++
2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/d162d676/Allura/allura/model/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index a9b07a0..8455395 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -827,13 +827,13 @@ class MergeRequest(VersionedArtifact, ActivityObject):
"""
Returns true if a merge is allowed by system and tool configuration.
"""
- if not c.app.forkable:
+ if not self.app.forkable:
return False
if self.status != 'open':
return False
if asbool(tg.config.get('scm.merge.{}.disabled'.format(self.app.config.tool_name))):
return False
- if not h.has_access(c.app, 'write', user):
+ if not h.has_access(self.app, 'write', user):
return False
if self.app.config.options.get('merge_disabled'):
return False
@@ -864,6 +864,8 @@ class MergeRequest(VersionedArtifact, ActivityObject):
conflicts). If result is unknown yet, returns None and fires a task to
get the result. Caches result for later reuse.
"""
+ if not self.merge_allowed(c.user):
+ return None
if self.status == 'merged':
return True
cached = self.get_can_merge_cache()
http://git-wip-us.apache.org/repos/asf/allura/blob/d162d676/Allura/allura/tests/model/test_repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_repo.py b/Allura/allura/tests/model/test_repo.py
index d083675..f71ad71 100644
--- a/Allura/allura/tests/model/test_repo.py
+++ b/Allura/allura/tests/model/test_repo.py
@@ -735,6 +735,7 @@ class TestMergeRequest(object):
)
self.mr.app = mock.Mock(forkable=True)
self.mr.app.repo.commit.return_value = mock.Mock(_id='09876')
+ self.mr.merge_allowed = mock.Mock(return_value=True)
def test_can_merge_cache_key(self):
key = self.mr.can_merge_cache_key()
@@ -777,6 +778,12 @@ class TestMergeRequest(object):
assert_equal(self.mr.can_merge(), None)
can_merge_task.post.assert_called_once_with(self.mr._id)
+ @mock.patch('allura.tasks.repo_tasks.can_merge', autospec=True)
+ def test_can_merge_disabled(self, can_merge_task):
+ self.mr.merge_allowed.return_value = False
+ assert_equal(self.mr.can_merge(), None)
+ assert_equal(can_merge_task.post.call_count, 0)
+
@mock.patch('allura.tasks.repo_tasks.merge', autospec=True)
def test_merge(self, merge_task):
self.mr.merge_task_status = lambda: None