Mercurial > hg
comparison tests/test-contrib-check-commit.t @ 27700:374fad80ce69
tests: extend check-commit self-tests
This now contains both positive and negative tests for almost all the
check-commit rules.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 08 Jan 2016 12:07:15 -0600 |
parents | 96dc6664fa9c |
children | 7291c8165e33 |
comparison
equal
deleted
inserted
replaced
27699:c8d3392f76e1 | 27700:374fad80ce69 |
---|---|
1 Test the 'check-commit' script | 1 Test the 'check-commit' script |
2 ============================== | 2 ============================== |
3 | 3 |
4 Test long lines in header (should not be reported as too long description) | 4 A fine patch: |
5 | 5 |
6 $ cat > patch-with-long-header.diff << EOF | 6 $ cat > patch-with-long-header.diff << EOF |
7 > # HG changeset patch | 7 > # HG changeset patch |
8 > # User timeless <timeless@mozdev.org> | 8 > # User timeless <timeless@mozdev.org> |
9 > # Date 1448911706 0 | 9 > # Date 1448911706 0 |
10 > # Mon Nov 30 19:28:26 2015 +0000 | 10 > # Mon Nov 30 19:28:26 2015 +0000 |
11 > # Node ID c41cb6d2b7dbd62b1033727f8606b8c09fc4aa88 | 11 > # Node ID c41cb6d2b7dbd62b1033727f8606b8c09fc4aa88 |
12 > # Parent 42aa0e570eaa364a622bc4443b0bcb79b1100a58 | 12 > # Parent 42aa0e570eaa364a622bc4443b0bcb79b1100a58 |
13 > # ClownJoke This is a veryly long header that should not be warned about because its not the description | 13 > # ClownJoke This is a veryly long header that should not be warned about because its not the description |
14 > transplant: use Oxford comma | 14 > bundle2: use Oxford comma (issue123) (BC) |
15 > | |
16 > diff --git a/hgext/transplant.py b/hgext/transplant.py | |
17 > --- a/hgext/transplant.py | |
18 > +++ b/hgext/transplant.py | |
19 > @@ -599,7 +599,7 @@ | |
20 > return | |
21 > if not (opts.get('source') or revs or | |
22 > opts.get('merge') or opts.get('branch')): | |
23 > - raise error.Abort(_('no source URL, branch revision or revision ' | |
24 > + raise error.Abort(_('no source URL, branch revision, or revision ' | |
25 > 'list provided')) | |
26 > if opts.get('all'): | |
27 > | |
28 > + def blahblah(x): | |
29 > + pass | |
30 > EOF | |
31 $ cat patch-with-long-header.diff | $TESTDIR/../contrib/check-commit | |
32 | |
33 A patch with lots of errors: | |
34 | |
35 $ cat > patch-with-long-header.diff << EOF | |
36 > # HG changeset patch | |
37 > # User timeless | |
38 > # Date 1448911706 0 | |
39 > # Mon Nov 30 19:28:26 2015 +0000 | |
40 > # Node ID c41cb6d2b7dbd62b1033727f8606b8c09fc4aa88 | |
41 > # Parent 42aa0e570eaa364a622bc4443b0bcb79b1100a58 | |
42 > # ClownJoke This is a veryly long header that should not be warned about because its not the description | |
43 > transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244) | |
15 > | 44 > |
16 > diff --git a/hgext/transplant.py b/hgext/transplant.py | 45 > diff --git a/hgext/transplant.py b/hgext/transplant.py |
17 > --- a/hgext/transplant.py | 46 > --- a/hgext/transplant.py |
18 > +++ b/hgext/transplant.py | 47 > +++ b/hgext/transplant.py |
19 > @@ -599,7 +599,7 @@ | 48 > @@ -599,7 +599,7 @@ |
24 > + raise error.Abort(_('no source URL, branch revision, or revision ' | 53 > + raise error.Abort(_('no source URL, branch revision, or revision ' |
25 > 'list provided')) | 54 > 'list provided')) |
26 > if opts.get('all'): | 55 > if opts.get('all'): |
27 > EOF | 56 > EOF |
28 $ cat patch-with-long-header.diff | $TESTDIR/../contrib/check-commit | 57 $ cat patch-with-long-header.diff | $TESTDIR/../contrib/check-commit |
58 7: (BC) needs to be uppercase | |
59 transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244) | |
60 7: no space allowed between issue and number | |
61 transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244) | |
62 7: use (issueDDDD) instead of bug | |
63 transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244) | |
64 1: username is not an email address | |
65 # User timeless | |
66 7: summary keyword should be most user-relevant one-word command or topic | |
67 transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244) | |
68 7: summary line too long (limit is 78) | |
69 transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244) | |
70 [1] | |
71 | |
72 A patch with other errors: | |
73 | |
74 $ cat > patch-with-long-header.diff << EOF | |
75 > # HG changeset patch | |
76 > # User timeless | |
77 > # Date 1448911706 0 | |
78 > # Mon Nov 30 19:28:26 2015 +0000 | |
79 > # Node ID c41cb6d2b7dbd62b1033727f8606b8c09fc4aa88 | |
80 > # Parent 42aa0e570eaa364a622bc4443b0bcb79b1100a58 | |
81 > # ClownJoke This is a veryly long header that should not be warned about because its not the description | |
82 > This has no topic and ends with a period. | |
83 > | |
84 > diff --git a/hgext/transplant.py b/hgext/transplant.py | |
85 > --- a/hgext/transplant.py | |
86 > +++ b/hgext/transplant.py | |
87 > @@ -599,7 +599,7 @@ | |
88 > if opts.get('all'): | |
89 > | |
90 > + | |
91 > + def blah_blah(x): | |
92 > + pass | |
93 > + | |
94 > | |
95 > EOF | |
96 $ cat patch-with-long-header.diff | $TESTDIR/../contrib/check-commit | |
97 1: username is not an email address | |
98 # User timeless | |
99 7: summary line doesn't start with 'topic: ' | |
100 This has no topic and ends with a period. | |
101 7: don't capitalize summary lines | |
102 This has no topic and ends with a period. | |
103 7: don't add trailing period on summary line | |
104 This has no topic and ends with a period. | |
105 19: adds double empty line | |
106 | |
107 15: adds double empty line | |
108 + | |
109 16: adds a function with foo_bar naming | |
110 + def blah_blah(x): | |
111 [1] |