pull-requests: fixed a case when template marker was used in description field.
fixes #5652
This commit is contained in:
parent
309bc80f66
commit
54ee3ab1fa
7 changed files with 52 additions and 25 deletions
|
|
@ -420,6 +420,27 @@ class TestPullrequestsView(object):
|
|||
assert pull_request.title == 'New title'
|
||||
assert pull_request.description == 'New description'
|
||||
|
||||
def test_edit_title_description(self, pr_util, csrf_token):
|
||||
pull_request = pr_util.create_pull_request()
|
||||
pull_request_id = pull_request.pull_request_id
|
||||
|
||||
response = self.app.post(
|
||||
route_path('pullrequest_update',
|
||||
repo_name=pull_request.target_repo.repo_name,
|
||||
pull_request_id=pull_request_id),
|
||||
params={
|
||||
'edit_pull_request': 'true',
|
||||
'title': 'New title {} {2} {foo}',
|
||||
'description': 'New description',
|
||||
'csrf_token': csrf_token})
|
||||
|
||||
assert_session_flash(
|
||||
response, u'Pull request title & description updated.',
|
||||
category='success')
|
||||
|
||||
pull_request = PullRequest.get(pull_request_id)
|
||||
assert pull_request.title_safe == 'New title {{}} {{2}} {{foo}}'
|
||||
|
||||
def test_edit_title_description_closed(self, pr_util, csrf_token):
|
||||
pull_request = pr_util.create_pull_request()
|
||||
pull_request_id = pull_request.pull_request_id
|
||||
|
|
|
|||
|
|
@ -4220,6 +4220,12 @@ class _PullRequestBase(BaseModel):
|
|||
return True
|
||||
return False
|
||||
|
||||
@property
|
||||
def title_safe(self):
|
||||
return self.title\
|
||||
.replace('{', '{{')\
|
||||
.replace('}', '}}')
|
||||
|
||||
@hybrid_property
|
||||
def description_safe(self):
|
||||
from rhodecode.lib import helpers as h
|
||||
|
|
|
|||
|
|
@ -1462,7 +1462,6 @@ var CommentsController = function() {
|
|||
|
||||
var comment = $('#comment-'+commentId);
|
||||
var commentData = comment.data();
|
||||
console.log(commentData);
|
||||
|
||||
if (commentData.commentInline) {
|
||||
var f_path = commentData.commentFPath;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ data = {
|
|||
'comment_type': comment_type,
|
||||
'comment_id': comment_id,
|
||||
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'mention_prefix': '[mention] ' if mention else '',
|
||||
}
|
||||
|
|
@ -31,7 +31,6 @@ else:
|
|||
_('{mention_prefix}{user} left a {comment_type} on pull request !{pr_id}: "{pr_title}"').format(**data)
|
||||
%>
|
||||
|
||||
|
||||
${subject_template.format(**data) |n}
|
||||
</%def>
|
||||
|
||||
|
|
@ -47,7 +46,7 @@ data = {
|
|||
'comment_type': comment_type,
|
||||
'comment_id': comment_id,
|
||||
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
'source_ref_name': pull_request.source_ref_parts.name,
|
||||
|
|
@ -99,7 +98,7 @@ data = {
|
|||
'comment_id': comment_id,
|
||||
'renderer_type': renderer_type or 'plain',
|
||||
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'status': status_change,
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
data = {
|
||||
'user': '@'+h.person(user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
}
|
||||
|
||||
if user_role == 'observer':
|
||||
|
|
@ -26,7 +26,7 @@ ${subject_template.format(**data) |n}
|
|||
data = {
|
||||
'user': h.person(user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
'source_ref_name': pull_request.source_ref_parts.name,
|
||||
'target_ref_type': pull_request.target_ref_parts.type,
|
||||
|
|
@ -66,7 +66,7 @@ ${self.plaintext_footer()}
|
|||
data = {
|
||||
'user': h.person(user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
'source_ref_name': pull_request.source_ref_parts.name,
|
||||
'target_ref_type': pull_request.target_ref_parts.type,
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
data = {
|
||||
'updating_user': '@'+h.person(updating_user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
}
|
||||
|
||||
subject_template = email_pr_update_subject_template or _('{updating_user} updated pull request. !{pr_id}: "{pr_title}"')
|
||||
|
|
@ -23,7 +23,7 @@ ${subject_template.format(**data) |n}
|
|||
data = {
|
||||
'updating_user': h.person(updating_user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
'source_ref_name': pull_request.source_ref_parts.name,
|
||||
'target_ref_type': pull_request.target_ref_parts.type,
|
||||
|
|
@ -74,7 +74,7 @@ ${self.plaintext_footer()}
|
|||
data = {
|
||||
'updating_user': h.person(updating_user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
'pr_title': pull_request.title_safe,
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
'source_ref_name': pull_request.source_ref_parts.name,
|
||||
'target_ref_type': pull_request.target_ref_parts.type,
|
||||
|
|
|
|||
|
|
@ -27,6 +27,16 @@ from rhodecode.model.db import User, PullRequestReviewers
|
|||
from rhodecode.model.notification import EmailNotificationModel
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def pr():
|
||||
def factory(ref):
|
||||
return collections.namedtuple(
|
||||
'PullRequest',
|
||||
'pull_request_id, title, title_safe, description, source_ref_parts, source_ref_name, target_ref_parts, target_ref_name')\
|
||||
(200, 'Example Pull Request', 'Example Pull Request', 'Desc of PR', ref, 'bookmark', ref, 'Branch')
|
||||
return factory
|
||||
|
||||
|
||||
def test_get_template_obj(app, request_stub):
|
||||
template = EmailNotificationModel().get_renderer(
|
||||
EmailNotificationModel.TYPE_TEST, request_stub)
|
||||
|
|
@ -53,14 +63,10 @@ def test_render_email(app, http_host_only_stub):
|
|||
|
||||
|
||||
@pytest.mark.parametrize('role', PullRequestReviewers.ROLES)
|
||||
def test_render_pr_email(app, user_admin, role):
|
||||
def test_render_pr_email(app, user_admin, role, pr):
|
||||
ref = collections.namedtuple(
|
||||
'Ref', 'name, type')('fxies123', 'book')
|
||||
|
||||
pr = collections.namedtuple('PullRequest',
|
||||
'pull_request_id, title, description, source_ref_parts, source_ref_name, target_ref_parts, target_ref_name')(
|
||||
200, 'Example Pull Request', 'Desc of PR', ref, 'bookmark', ref, 'Branch')
|
||||
|
||||
pr = pr(ref)
|
||||
source_repo = target_repo = collections.namedtuple(
|
||||
'Repo', 'type, repo_name')('hg', 'pull_request_1')
|
||||
|
||||
|
|
@ -89,13 +95,11 @@ def test_render_pr_email(app, user_admin, role):
|
|||
assert subject == '@test_admin (RhodeCode Admin) added you as observer to pull request. !200: "Example Pull Request"'
|
||||
|
||||
|
||||
def test_render_pr_update_email(app, user_admin):
|
||||
def test_render_pr_update_email(app, user_admin, pr):
|
||||
ref = collections.namedtuple(
|
||||
'Ref', 'name, type')('fxies123', 'book')
|
||||
|
||||
pr = collections.namedtuple('PullRequest',
|
||||
'pull_request_id, title, description, source_ref_parts, source_ref_name, target_ref_parts, target_ref_name')(
|
||||
200, 'Example Pull Request', 'Desc of PR', ref, 'bookmark', ref, 'Branch')
|
||||
pr = pr(ref)
|
||||
|
||||
source_repo = target_repo = collections.namedtuple(
|
||||
'Repo', 'type, repo_name')('hg', 'pull_request_1')
|
||||
|
|
@ -150,13 +154,11 @@ def test_render_pr_update_email(app, user_admin):
|
|||
EmailNotificationModel.TYPE_COMMIT_COMMENT,
|
||||
EmailNotificationModel.TYPE_PULL_REQUEST_COMMENT
|
||||
])
|
||||
def test_render_comment_subject_no_newlines(app, mention, email_type):
|
||||
def test_render_comment_subject_no_newlines(app, mention, email_type, pr):
|
||||
ref = collections.namedtuple(
|
||||
'Ref', 'name, type')('fxies123', 'book')
|
||||
|
||||
pr = collections.namedtuple('PullRequest',
|
||||
'pull_request_id, title, description, source_ref_parts, source_ref_name, target_ref_parts, target_ref_name')(
|
||||
200, 'Example Pull Request', 'Desc of PR', ref, 'bookmark', ref, 'Branch')
|
||||
pr = pr(ref)
|
||||
|
||||
source_repo = target_repo = collections.namedtuple(
|
||||
'Repo', 'type, repo_name')('hg', 'pull_request_1')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue