##// END OF EJS Templates
admin: fixed problems with generating last change in admin panels....
admin: fixed problems with generating last change in admin panels. - from now on also updated_on will refer as last commit change instead of last update of DB. Reason for that is since we have audit logs the last db update should be taken from there along the change info. Storing last commit date in the dedicated field makes it searchable, sortable and faster to read.

File last commit:

r3423:f8efae2b merge default
r4000:52837660 default
Show More
test_pullrequest.py
100 lines | 3.6 KiB | text/x-python | PythonLexer
dan
events: add pull request events
r378 # -*- coding: utf-8 -*-
docs: updated copyrights to 2019
r3363 # Copyright (C) 2010-2019 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()
api/pull-requests: trigger events for comments/review status changes.
r3416 if EventClass == PullRequestReviewEvent:
event = EventClass(pr, 'approved')
else:
event = EventClass(pr)
dan
events: fix bugs with serialization of repo/pr events and add tests for those cases
r389 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