Show More
@@ -332,14 +332,19 b' class EmailNotificationModel(BaseModel):' | |||
|
332 | 332 | |
|
333 | 333 | :param kwargs: |
|
334 | 334 | """ |
|
335 | ||
|
335 | 336 | kwargs['rhodecode_instance_name'] = self.rhodecode_instance_name |
|
336 | 337 | |
|
337 | 338 | _kwargs = { |
|
338 | 339 | 'instance_url': h.url('home', qualified=True), |
|
340 | 'whitespace_filter': self.whitespace_filter | |
|
339 | 341 | } |
|
340 | 342 | _kwargs.update(kwargs) |
|
341 | 343 | return _kwargs |
|
342 | 344 | |
|
345 | def whitespace_filter(self, text): | |
|
346 | return text.replace('\n', '').replace('\t', '') | |
|
347 | ||
|
343 | 348 | def get_renderer(self, type_): |
|
344 | 349 | template_name = self.email_types[type_] |
|
345 | 350 | return PartialRenderer(template_name) |
@@ -3,7 +3,7 b'' | |||
|
3 | 3 | <%namespace name="base" file="base.mako"/> |
|
4 | 4 | |
|
5 | 5 | ## EMAIL SUBJECT |
|
6 | <%def name="subject()" filter="n,trim"> | |
|
6 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
7 | 7 | <% |
|
8 | 8 | data = { |
|
9 | 9 | 'user': h.person(user), |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | ## -*- coding: utf-8 -*- |
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | <%def name="subject()" filter="n,trim"> | |
|
4 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
5 | 5 | RhodeCode test email: ${h.format_date(date)} |
|
6 | 6 | </%def> |
|
7 | 7 |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | ## -*- coding: utf-8 -*- |
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | <%def name="subject()" filter="n,trim"> | |
|
4 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
5 | 5 | </%def> |
|
6 | 6 | |
|
7 | 7 |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | ## -*- coding: utf-8 -*- |
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | <%def name="subject()" filter="n,trim"> | |
|
4 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
5 | 5 | RhodeCode Password reset |
|
6 | 6 | </%def> |
|
7 | 7 |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | ## -*- coding: utf-8 -*- |
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | <%def name="subject()" filter="n,trim"> | |
|
4 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
5 | 5 | Your new RhodeCode password |
|
6 | 6 | </%def> |
|
7 | 7 |
@@ -3,7 +3,7 b'' | |||
|
3 | 3 | <%namespace name="base" file="base.mako"/> |
|
4 | 4 | |
|
5 | 5 | ## EMAIL SUBJECT |
|
6 | <%def name="subject()" filter="n,trim"> | |
|
6 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
7 | 7 | <% |
|
8 | 8 | data = { |
|
9 | 9 | 'user': h.person(user), |
@@ -2,7 +2,7 b'' | |||
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | <%namespace name="base" file="base.mako"/> |
|
4 | 4 | |
|
5 | <%def name="subject()" filter="n,trim"> | |
|
5 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
6 | 6 | <% |
|
7 | 7 | data = { |
|
8 | 8 | 'user': h.person(user), |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | ## -*- coding: utf-8 -*- |
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | <%def name="subject()" filter="n,trim"> | |
|
4 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
5 | 5 | Test "Subject" ${_('hello "world"')|n} |
|
6 | 6 | </%def> |
|
7 | 7 |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | ## -*- coding: utf-8 -*- |
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | <%def name="subject()" filter="n,trim"> | |
|
4 | <%def name="subject()" filter="n,trim,whitespace_filter"> | |
|
5 | 5 | RhodeCode new user registration: ${user.username} |
|
6 | 6 | </%def> |
|
7 | 7 |
@@ -3,6 +3,7 b' import collections' | |||
|
3 | 3 | import pytest |
|
4 | 4 | |
|
5 | 5 | from rhodecode.lib.utils import PartialRenderer |
|
6 | from rhodecode.lib.utils2 import AttributeDict | |
|
6 | 7 | from rhodecode.model.notification import EmailNotificationModel |
|
7 | 8 | |
|
8 | 9 | |
@@ -66,3 +67,57 b' def test_render_pr_email(pylonsapp, user' | |||
|
66 | 67 | |
|
67 | 68 | # subject |
|
68 | 69 | assert subject == 'Marcin Kuzminski wants you to review pull request #200: "Example Pull Request"' |
|
70 | ||
|
71 | ||
|
72 | @pytest.mark.parametrize('mention', [ | |
|
73 | True, | |
|
74 | False | |
|
75 | ]) | |
|
76 | @pytest.mark.parametrize('email_type', [ | |
|
77 | EmailNotificationModel.TYPE_COMMIT_COMMENT, | |
|
78 | EmailNotificationModel.TYPE_PULL_REQUEST_COMMENT | |
|
79 | ]) | |
|
80 | def test_render_comment_subject_no_newlines(pylonsapp, mention, email_type): | |
|
81 | ref = collections.namedtuple('Ref', | |
|
82 | 'name, type')( | |
|
83 | 'fxies123', 'book' | |
|
84 | ) | |
|
85 | ||
|
86 | pr = collections.namedtuple('PullRequest', | |
|
87 | 'pull_request_id, title, description, source_ref_parts, source_ref_name, target_ref_parts, target_ref_name')( | |
|
88 | 200, 'Example Pull Request', 'Desc of PR', ref, 'bookmark', ref, 'Branch') | |
|
89 | ||
|
90 | source_repo = target_repo = collections.namedtuple('Repo', | |
|
91 | 'type, repo_name')( | |
|
92 | 'hg', 'pull_request_1') | |
|
93 | ||
|
94 | kwargs = { | |
|
95 | 'user': '<marcin@rhodecode.com> Marcin Kuzminski', | |
|
96 | 'commit': AttributeDict(raw_id='a'*40, message='Commit message'), | |
|
97 | 'status_change': 'approved', | |
|
98 | 'commit_target_repo': AttributeDict(), | |
|
99 | 'repo_name': 'test-repo', | |
|
100 | 'comment_file': 'test-file.py', | |
|
101 | 'comment_line': 'n100', | |
|
102 | 'comment_type': 'note', | |
|
103 | 'commit_comment_url': 'http://comment-url', | |
|
104 | 'instance_url': 'http://rc-instance', | |
|
105 | 'comment_body': 'hello world', | |
|
106 | 'mention': mention, | |
|
107 | ||
|
108 | 'pr_comment_url': 'http://comment-url', | |
|
109 | 'pr_source_repo': AttributeDict(repo_name='foobar'), | |
|
110 | 'pr_source_repo_url': 'http://soirce-repo/url', | |
|
111 | 'pull_request': pr, | |
|
112 | 'pull_request_commits': [], | |
|
113 | ||
|
114 | 'pull_request_target_repo': target_repo, | |
|
115 | 'pull_request_target_repo_url': 'x', | |
|
116 | ||
|
117 | 'pull_request_source_repo': source_repo, | |
|
118 | 'pull_request_source_repo_url': 'x', | |
|
119 | } | |
|
120 | subject, headers, body, body_plaintext = EmailNotificationModel().render_email( | |
|
121 | email_type, **kwargs) | |
|
122 | ||
|
123 | assert '\n' not in subject |
General Comments 0
You need to be logged in to leave comments.
Login now