##// END OF EJS Templates
pull-requests: increase stability of concurrent pull requests creation by flushing prematurly the statuses of commits....
pull-requests: increase stability of concurrent pull requests creation by flushing prematurly the statuses of commits. This is required to increase the versions on each concurrent call. Otherwise we could get into an integrity errors of commitsha+version+repo

File last commit:

r3399:820d474e default
r3408:2a133f7e stable
Show More
test_pullrequest.py
97 lines | 3.5 KiB | text/x-python | PythonLexer
dan
events: add pull request events
r378 # -*- coding: utf-8 -*-
release: update copyright year to 2018
r2487 # Copyright (C) 2010-2018 RhodeCode GmbH
dan
events: add pull request events
r378 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
import pytest
from rhodecode.tests.events.conftest import EventCatcher
comments: renamed ChangesetCommentsModel to CommentsModel to reflect what it actually does....
r1323 from rhodecode.model.comment import CommentsModel
dan
events: add pull request events
r378 from rhodecode.model.pull_request import PullRequestModel
from rhodecode.events import (
PullRequestCreateEvent,
PullRequestUpdateEvent,
dan
events: add an event for pull request comments with review status
r443 PullRequestCommentEvent,
dan
events: add pull request events
r378 PullRequestReviewEvent,
PullRequestMergeEvent,
PullRequestCloseEvent,
)
dan
events: fix bugs with serialization of repo/pr events and add tests for those cases
r389 # TODO: dan: make the serialization tests complete json comparisons
@pytest.mark.backends("git", "hg")
@pytest.mark.parametrize('EventClass', [
PullRequestCreateEvent,
PullRequestUpdateEvent,
PullRequestReviewEvent,
PullRequestMergeEvent,
PullRequestCloseEvent,
])
home: moved home and repo group views into pyramid....
r1774 def test_pullrequest_events_serialized(EventClass, pr_util, config_stub):
dan
events: fix bugs with serialization of repo/pr events and add tests for those cases
r389 pr = pr_util.create_pull_request()
event = EventClass(pr)
data = event.as_dict()
assert data['name'] == EventClass.name
assert data['repo']['repo_name'] == pr.target_repo.repo_name
assert data['pullrequest']['pull_request_id'] == pr.pull_request_id
dan
events: fix bug, 'url' was not in dict
r392 assert data['pullrequest']['url']
events: expose permalink urls for different set of object....
r1788 assert data['pullrequest']['permalink_url']
dan
events: add pull request events
r378
home: moved home and repo group views into pyramid....
r1774
dan
events: add pull request events
r378 @pytest.mark.backends("git", "hg")
home: moved home and repo group views into pyramid....
r1774 def test_create_pull_request_events(pr_util, config_stub):
dan
events: add pull request events
r378 with EventCatcher() as event_catcher:
pr_util.create_pull_request()
assert PullRequestCreateEvent in event_catcher.events_types
home: moved home and repo group views into pyramid....
r1774
dan
events: add an event for pull request comments with review status
r443 @pytest.mark.backends("git", "hg")
home: moved home and repo group views into pyramid....
r1774 def test_pullrequest_comment_events_serialized(pr_util, config_stub):
dan
events: add an event for pull request comments with review status
r443 pr = pr_util.create_pull_request()
comments: renamed ChangesetCommentsModel to CommentsModel to reflect what it actually does....
r1323 comment = CommentsModel().get_comments(
dan
events: add an event for pull request comments with review status
r443 pr.target_repo.repo_id, pull_request=pr)[0]
event = PullRequestCommentEvent(pr, comment)
data = event.as_dict()
assert data['name'] == PullRequestCommentEvent.name
assert data['repo']['repo_name'] == pr.target_repo.repo_name
assert data['pullrequest']['pull_request_id'] == pr.pull_request_id
assert data['pullrequest']['url']
events: expose permalink urls for different set of object....
r1788 assert data['pullrequest']['permalink_url']
dan
events: add an event for pull request comments with review status
r443 assert data['comment']['text'] == comment.text
dan
events: add pull request events
r378
@pytest.mark.backends("git", "hg")
home: moved home and repo group views into pyramid....
r1774 def test_close_pull_request_events(pr_util, user_admin, config_stub):
dan
events: add pull request events
r378 pr = pr_util.create_pull_request()
with EventCatcher() as event_catcher:
PullRequestModel().close_pull_request(pr, user_admin)
assert PullRequestCloseEvent in event_catcher.events_types
@pytest.mark.backends("git", "hg")
home: moved home and repo group views into pyramid....
r1774 def test_close_pull_request_with_comment_events(pr_util, user_admin, config_stub):
dan
events: add pull request events
r378 pr = pr_util.create_pull_request()
with EventCatcher() as event_catcher:
PullRequestModel().close_pull_request_with_comment(
pr, user_admin, pr.target_repo)
assert PullRequestCloseEvent in event_catcher.events_types