Mercurial > hg-stable
annotate tests/test-notify.t @ 12646:624859bf4314
test-notify: fix fix for line continuation in long mail header lines
Continued lines can also start with space.
Note that this hack also incorrectly patches the diff output.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sat, 09 Oct 2010 07:13:47 -0500 |
parents | 0490d2223882 |
children | e3bf16703e26 |
rev | line source |
---|---|
3740
aef384dbc731
add test for the notify extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
1 |
12473 | 2 $ cat <<EOF >> $HGRCPATH |
3 > [extensions] | |
4 > notify= | |
5 > | |
6 > [hooks] | |
7 > incoming.notify = python:hgext.notify.hook | |
8 > | |
9 > [notify] | |
10 > sources = pull | |
11 > diffstat = False | |
12 > | |
13 > [usersubs] | |
14 > foo@bar = * | |
15 > | |
16 > [reposubs] | |
17 > * = baz | |
18 > EOF | |
19 $ hg help notify | |
20 notify extension - hooks for sending email notifications at commit/push time | |
21 | |
22 Subscriptions can be managed through a hgrc file. Default mode is to print | |
23 messages to stdout, for testing and configuring. | |
24 | |
25 To use, configure the notify extension and enable it in hgrc like this: | |
26 | |
27 [extensions] | |
28 notify = | |
29 | |
30 [hooks] | |
31 # one email for each incoming changeset | |
32 incoming.notify = python:hgext.notify.hook | |
33 # batch emails when many changesets incoming at one time | |
34 changegroup.notify = python:hgext.notify.hook | |
35 | |
36 [notify] | |
37 # config items go here | |
38 | |
39 Required configuration items: | |
40 | |
41 config = /path/to/file # file containing subscriptions | |
42 | |
43 Optional configuration items: | |
44 | |
45 test = True # print messages to stdout for testing | |
46 strip = 3 # number of slashes to strip for url paths | |
47 domain = example.com # domain to use if committer missing domain | |
48 style = ... # style file to use when formatting email | |
49 template = ... # template to use when formatting email | |
50 incoming = ... # template to use when run as incoming hook | |
51 changegroup = ... # template when run as changegroup hook | |
52 maxdiff = 300 # max lines of diffs to include (0=none, -1=all) | |
53 maxsubject = 67 # truncate subject line longer than this | |
54 diffstat = True # add a diffstat before the diff content | |
55 sources = serve # notify if source of incoming changes in this list | |
56 # (serve == ssh or http, push, pull, bundle) | |
57 merge = False # send notification for merges (default True) | |
58 [email] | |
59 from = user@host.com # email address to send as if none given | |
60 [web] | |
61 baseurl = http://hgserver/... # root of hg web site for browsing commits | |
62 | |
63 The notify config file has same format as a regular hgrc file. It has two | |
64 sections so you can express subscriptions in whatever way is handier for you. | |
65 | |
66 [usersubs] | |
67 # key is subscriber email, value is ","-separated list of glob patterns | |
68 user@host = pattern | |
69 | |
70 [reposubs] | |
71 # key is glob pattern, value is ","-separated list of subscriber emails | |
72 pattern = user@host | |
73 | |
74 Glob patterns are matched against path to repository root. | |
75 | |
76 If you like, you can put notify config file in repository that users can push | |
77 changes to, they can manage their own subscriptions. | |
78 | |
79 no commands defined | |
80 $ hg init a | |
81 $ echo a > a/a | |
3740
aef384dbc731
add test for the notify extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
82 |
12473 | 83 commit |
84 | |
85 $ hg --cwd a commit -Ama -d '0 0' | |
86 adding a | |
87 | |
88 | |
89 clone | |
90 | |
91 $ hg --traceback clone a b | |
92 updating to branch default | |
93 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
94 $ echo a >> a/a | |
95 | |
96 commit | |
97 | |
98 $ hg --traceback --cwd a commit -Amb -d '1 0' | |
99 | |
100 on Mac OS X 10.5 the tmp path is very long so would get stripped in the subject line | |
101 | |
102 $ cat <<EOF >> $HGRCPATH | |
103 > [notify] | |
104 > maxsubject = 200 | |
105 > EOF | |
106 | |
107 the python call below wraps continuation lines, which appear on Mac OS X 10.5 because | |
108 of the very long subject line | |
109 pull (minimal config) | |
6359
25e74cd3f023
test-notify: make it pass on Mac OS X 10.5
Florent Guillaume <fg@nuxeo.com>
parents:
4517
diff
changeset
|
110 |
12473 | 111 $ hg --traceback --cwd b pull ../a | \ |
12646
624859bf4314
test-notify: fix fix for line continuation in long mail header lines
Mads Kiilerich <mads@kiilerich.com>
parents:
12644
diff
changeset
|
112 > python -c 'import sys,re; print re.sub("\n[\t ]", " ", sys.stdin.read()),' |
12473 | 113 pulling from ../a |
114 searching for changes | |
115 adding changesets | |
116 adding manifests | |
117 adding file changes | |
118 added 1 changesets with 1 changes to 1 files | |
119 Content-Type: text/plain; charset="us-ascii" | |
120 MIME-Version: 1.0 | |
121 Content-Transfer-Encoding: 7bit | |
122 Date: * (glob) | |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12473
diff
changeset
|
123 Subject: changeset in $TESTTMP/b: b |
12473 | 124 From: test |
125 X-Hg-Notification: changeset 0647d048b600 | |
126 Message-Id: <*> (glob) | |
127 To: baz, foo@bar | |
128 | |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12473
diff
changeset
|
129 changeset 0647d048b600 in $TESTTMP/b |
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12473
diff
changeset
|
130 details: $TESTTMP/b?cmd=changeset;node=0647d048b600 |
12473 | 131 description: b |
132 | |
133 diffs (6 lines): | |
134 | |
135 diff -r cb9a9f314b8b -r 0647d048b600 a | |
136 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
137 +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
12646
624859bf4314
test-notify: fix fix for line continuation in long mail header lines
Mads Kiilerich <mads@kiilerich.com>
parents:
12644
diff
changeset
|
138 @@ -1,1 +1,2 @@ a |
12473 | 139 +a |
140 (run 'hg update' to get a working copy) | |
141 $ cat <<EOF >> $HGRCPATH | |
142 > [notify] | |
12642
bb35840e965c
tests: remove the last traces of $HGTMP
Mads Kiilerich <mads@kiilerich.com>
parents:
12640
diff
changeset
|
143 > config = `pwd`/.notify.conf |
12473 | 144 > domain = test.com |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
145 > strip = 42 |
12473 | 146 > template = Subject: {desc|firstline|strip}\nFrom: {author}\nX-Test: foo\n\nchangeset {node|short} in {webroot}\ndescription:\n\t{desc|tabindent|strip} |
147 > | |
148 > [web] | |
149 > baseurl = http://test/ | |
150 > EOF | |
4094
fbf0e9acfd83
notify: don't try to fix addresses if notify.domain is not set
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4009
diff
changeset
|
151 |
12473 | 152 fail for config file is missing |
4094
fbf0e9acfd83
notify: don't try to fix addresses if notify.domain is not set
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4009
diff
changeset
|
153 |
12473 | 154 $ hg --cwd b rollback |
155 rolling back to revision 0 (undo pull) | |
156 $ hg --cwd b pull ../a 2>&1 | grep 'error.*\.notify\.conf' > /dev/null && echo pull failed | |
157 pull failed | |
12642
bb35840e965c
tests: remove the last traces of $HGTMP
Mads Kiilerich <mads@kiilerich.com>
parents:
12640
diff
changeset
|
158 $ touch ".notify.conf" |
12473 | 159 |
160 pull | |
4094
fbf0e9acfd83
notify: don't try to fix addresses if notify.domain is not set
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4009
diff
changeset
|
161 |
12473 | 162 $ hg --cwd b rollback |
163 rolling back to revision 0 (undo pull) | |
164 $ hg --traceback --cwd b pull ../a | \ | |
165 > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),' | |
166 pulling from ../a | |
167 searching for changes | |
168 adding changesets | |
169 adding manifests | |
170 adding file changes | |
171 added 1 changesets with 1 changes to 1 files | |
172 Content-Type: text/plain; charset="us-ascii" | |
173 MIME-Version: 1.0 | |
174 Content-Transfer-Encoding: 7bit | |
175 X-Test: foo | |
176 Date: * (glob) | |
177 Subject: b | |
178 From: test@test.com | |
179 X-Hg-Notification: changeset 0647d048b600 | |
180 Message-Id: <*> (glob) | |
181 To: baz@test.com, foo@bar | |
182 | |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
183 changeset 0647d048b600 in b |
12473 | 184 description: b |
185 diffs (6 lines): | |
186 | |
187 diff -r cb9a9f314b8b -r 0647d048b600 a | |
188 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
189 +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
190 @@ -1,1 +1,2 @@ | |
191 a | |
192 +a | |
193 (run 'hg update' to get a working copy) | |
4517
5371a213b0f4
ui: make readsections() abort when configuration cannot be read.
Patrick Mezard <pmezard@gmail.com>
parents:
4479
diff
changeset
|
194 |
12473 | 195 $ cat << EOF >> $HGRCPATH |
196 > [hooks] | |
197 > incoming.notify = python:hgext.notify.hook | |
198 > | |
199 > [notify] | |
200 > sources = pull | |
201 > diffstat = True | |
202 > EOF | |
203 | |
204 pull | |
4094
fbf0e9acfd83
notify: don't try to fix addresses if notify.domain is not set
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4009
diff
changeset
|
205 |
12473 | 206 $ hg --cwd b rollback |
207 rolling back to revision 0 (undo pull) | |
208 $ hg --traceback --cwd b pull ../a | \ | |
209 > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),' | |
210 pulling from ../a | |
211 searching for changes | |
212 adding changesets | |
213 adding manifests | |
214 adding file changes | |
215 added 1 changesets with 1 changes to 1 files | |
216 Content-Type: text/plain; charset="us-ascii" | |
217 MIME-Version: 1.0 | |
218 Content-Transfer-Encoding: 7bit | |
219 X-Test: foo | |
220 Date: * (glob) | |
221 Subject: b | |
222 From: test@test.com | |
223 X-Hg-Notification: changeset 0647d048b600 | |
224 Message-Id: <*> (glob) | |
225 To: baz@test.com, foo@bar | |
226 | |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
227 changeset 0647d048b600 in b |
12473 | 228 description: b |
229 diffstat: | |
230 | |
231 a | 1 + | |
232 1 files changed, 1 insertions(+), 0 deletions(-) | |
233 | |
234 diffs (6 lines): | |
235 | |
236 diff -r cb9a9f314b8b -r 0647d048b600 a | |
237 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
238 +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
239 @@ -1,1 +1,2 @@ | |
240 a | |
241 +a | |
242 (run 'hg update' to get a working copy) | |
7105
31837416ef4d
tests: add some testing for patch.diffstat()
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6359
diff
changeset
|
243 |
12473 | 244 test merge |
7105
31837416ef4d
tests: add some testing for patch.diffstat()
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6359
diff
changeset
|
245 |
12473 | 246 $ cd a |
247 $ hg up -C 0 | |
248 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
249 $ echo a >> a | |
250 $ hg ci -Am adda2 -d '2 0' | |
251 created new head | |
252 $ hg merge | |
253 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
254 (branch merge, don't forget to commit) | |
255 $ hg ci -m merge -d '3 0' | |
256 $ cd .. | |
257 $ hg --traceback --cwd b pull ../a | \ | |
258 > python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),' | |
259 pulling from ../a | |
260 searching for changes | |
261 adding changesets | |
262 adding manifests | |
263 adding file changes | |
264 added 2 changesets with 0 changes to 0 files | |
265 Content-Type: text/plain; charset="us-ascii" | |
266 MIME-Version: 1.0 | |
267 Content-Transfer-Encoding: 7bit | |
268 X-Test: foo | |
269 Date: * (glob) | |
270 Subject: adda2 | |
271 From: test@test.com | |
272 X-Hg-Notification: changeset 0a184ce6067f | |
273 Message-Id: <*> (glob) | |
274 To: baz@test.com, foo@bar | |
275 | |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
276 changeset 0a184ce6067f in b |
12473 | 277 description: adda2 |
278 diffstat: | |
279 | |
280 a | 1 + | |
281 1 files changed, 1 insertions(+), 0 deletions(-) | |
282 | |
283 diffs (6 lines): | |
284 | |
285 diff -r cb9a9f314b8b -r 0a184ce6067f a | |
286 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
287 +++ b/a Thu Jan 01 00:00:02 1970 +0000 | |
288 @@ -1,1 +1,2 @@ | |
289 a | |
290 +a | |
291 Content-Type: text/plain; charset="us-ascii" | |
292 MIME-Version: 1.0 | |
293 Content-Transfer-Encoding: 7bit | |
294 X-Test: foo | |
295 Date: * (glob) | |
296 Subject: merge | |
297 From: test@test.com | |
298 X-Hg-Notification: changeset 22c88b85aa27 | |
299 Message-Id: <*> (glob) | |
300 To: baz@test.com, foo@bar | |
301 | |
12644
0490d2223882
test-notify: stabilize output
Mads Kiilerich <mads@kiilerich.com>
parents:
12642
diff
changeset
|
302 changeset 22c88b85aa27 in b |
12473 | 303 description: merge |
304 (run 'hg update' to get a working copy) |