diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -3339,6 +3339,14 @@ class _PullRequestBase(BaseModel): def revisions(self, val): self._revisions = ':'.join(val) + @hybrid_property + def last_merge_status(self): + return safe_int(self._last_merge_status) + + @last_merge_status.setter + def last_merge_status(self, val): + self._last_merge_status = val + @declared_attr def author(cls): return relationship('User', lazy='joined') diff --git a/rhodecode/model/pull_request.py b/rhodecode/model/pull_request.py --- a/rhodecode/model/pull_request.py +++ b/rhodecode/model/pull_request.py @@ -780,7 +780,7 @@ class PullRequestModel(BaseModel): version._last_merge_source_rev = pull_request._last_merge_source_rev version._last_merge_target_rev = pull_request._last_merge_target_rev - version._last_merge_status = pull_request._last_merge_status + version.last_merge_status = pull_request.last_merge_status version.shadow_merge_ref = pull_request.shadow_merge_ref version.merge_rev = pull_request.merge_rev version.reviewer_data = pull_request.reviewer_data @@ -1223,9 +1223,9 @@ class PullRequestModel(BaseModel): pull_request, target_vcs, target_ref) else: possible = pull_request.\ - _last_merge_status == MergeFailureReason.NONE + last_merge_status == MergeFailureReason.NONE merge_state = MergeResponse( - possible, False, None, pull_request._last_merge_status) + possible, False, None, pull_request.last_merge_status) return merge_state @@ -1258,7 +1258,7 @@ class PullRequestModel(BaseModel): pull_request._last_merge_source_rev = \ pull_request.source_ref_parts.commit_id pull_request._last_merge_target_rev = target_reference.commit_id - pull_request._last_merge_status = merge_state.failure_reason + pull_request.last_merge_status = merge_state.failure_reason pull_request.shadow_merge_ref = merge_state.merge_ref Session().add(pull_request) Session().commit() diff --git a/rhodecode/tests/models/test_pullrequest.py b/rhodecode/tests/models/test_pullrequest.py --- a/rhodecode/tests/models/test_pullrequest.py +++ b/rhodecode/tests/models/test_pullrequest.py @@ -155,7 +155,7 @@ class TestPullRequestModel(object): assert pull_request._last_merge_source_rev is None assert pull_request._last_merge_target_rev is None - assert pull_request._last_merge_status is None + assert pull_request.last_merge_status is None status, msg = PullRequestModel().merge_status(pull_request) assert status is True @@ -168,7 +168,7 @@ class TestPullRequestModel(object): assert pull_request._last_merge_source_rev == self.source_commit assert pull_request._last_merge_target_rev == self.target_commit - assert pull_request._last_merge_status is MergeFailureReason.NONE + assert pull_request.last_merge_status is MergeFailureReason.NONE self.merge_mock.reset_mock() status, msg = PullRequestModel().merge_status(pull_request) @@ -182,7 +182,7 @@ class TestPullRequestModel(object): assert pull_request._last_merge_source_rev is None assert pull_request._last_merge_target_rev is None - assert pull_request._last_merge_status is None + assert pull_request.last_merge_status is None status, msg = PullRequestModel().merge_status(pull_request) assert status is False @@ -198,7 +198,7 @@ class TestPullRequestModel(object): assert pull_request._last_merge_source_rev == self.source_commit assert pull_request._last_merge_target_rev == self.target_commit assert ( - pull_request._last_merge_status is MergeFailureReason.MERGE_FAILED) + pull_request.last_merge_status is MergeFailureReason.MERGE_FAILED) self.merge_mock.reset_mock() status, msg = PullRequestModel().merge_status(pull_request) @@ -214,7 +214,7 @@ class TestPullRequestModel(object): assert pull_request._last_merge_source_rev is None assert pull_request._last_merge_target_rev is None - assert pull_request._last_merge_status is None + assert pull_request.last_merge_status is None status, msg = PullRequestModel().merge_status(pull_request) assert status is False @@ -229,7 +229,7 @@ class TestPullRequestModel(object): assert pull_request._last_merge_source_rev is None assert pull_request._last_merge_target_rev is None - assert pull_request._last_merge_status is None + assert pull_request.last_merge_status is None self.merge_mock.reset_mock() status, msg = PullRequestModel().merge_status(pull_request) @@ -760,7 +760,7 @@ def test_create_version_from_snapshot_up pull_request.status = PullRequest.STATUS_CLOSED pull_request._last_merge_source_rev = "0" * 40 pull_request._last_merge_target_rev = "1" * 40 - pull_request._last_merge_status = 1 + pull_request.last_merge_status = 1 pull_request.merge_rev = "2" * 40 # Remember automatic values @@ -787,7 +787,7 @@ def test_create_version_from_snapshot_up assert version.target_ref == pr_util.create_parameters['target_ref'] assert version._last_merge_source_rev == pull_request._last_merge_source_rev assert version._last_merge_target_rev == pull_request._last_merge_target_rev - assert version._last_merge_status == pull_request._last_merge_status + assert version.last_merge_status == pull_request.last_merge_status assert version.merge_rev == pull_request.merge_rev assert version.pull_request == pull_request