db: use a wrapper on pull requests _last_merge_status to ensure this is always INT.

- after upgrade of sqlalchemy this is casted to Long
- for backward compat we cast it as Int
This commit is contained in:
Marcin Kuzminski 2017-07-26 12:16:25 +02:00
parent 708f22ac87
commit ae8340ad2a
3 changed files with 20 additions and 12 deletions

View file

@ -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')

View file

@ -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()

View file

@ -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_updates_attributes(pr_util, config_stub):
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_updates_attributes(pr_util, config_stub):
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