Mercurial > hg
annotate tests/test-oldcgi.t @ 41163:0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
There was a divergence in behavior here between obsolete and strip based
amending. I first noticed the abort when testing outside of the test harness,
but then had trouble recreating it here after reverting the code changes. It
turns out, strip based amend was successfully amending the public commit after
it was posted! It looks like the protection is in the `commit --amend` command,
not in the underlying code that it calls.
I considered doing a preflight check and aborting. But the locks are only
acquired at the end, if amending, and this is too large a section of code to be
wrapped in a maybe-it's-held-or-not context manager for my tastes.
Additionally, some people do post-push reviews, and amending is the default
behavior, so they shouldn't see a misleading error message.
The lack of a 'Differential Revision' entry in the commit message breaks a
{phabreview} test, so it had to be partially conditionalized.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 05 Jan 2019 15:20:33 -0500 |
parents | 5abc47d4ca6b |
children | f5cb822625cc |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
15567
diff
changeset
|
1 #require no-msys # MSYS will translate web paths as if they were file paths |
15567
8b84d040d9f9
tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents:
13269
diff
changeset
|
2 |
12472 | 3 This tests if CGI files from before d0db3462d568 still work. |
2533
589474a1dc36
Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
4 |
12472 | 5 $ hg init test |
6 $ cat >hgweb.cgi <<HGWEB | |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39621
diff
changeset
|
7 > #!"$PYTHON" |
12472 | 8 > # |
9 > # An example CGI script to use hgweb, edit as necessary | |
10 > | |
11 > import cgitb, os, sys | |
12 > cgitb.enable() | |
13 > | |
14 > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install | |
15 > from mercurial import hgweb | |
16 > | |
39621
23b749b84b8a
py3: call hgweb.hgweb() with bytes values
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33262
diff
changeset
|
17 > h = hgweb.hgweb(b"test", b"Empty test repository") |
12472 | 18 > h.run() |
19 > HGWEB | |
2533
589474a1dc36
Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
20 |
12472 | 21 $ chmod 755 hgweb.cgi |
2533
589474a1dc36
Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
22 |
12472 | 23 $ cat >hgweb.config <<HGWEBDIRCONF |
24 > [paths] | |
25 > test = test | |
26 > HGWEBDIRCONF | |
2533
589474a1dc36
Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
27 |
12472 | 28 $ cat >hgwebdir.cgi <<HGWEBDIR |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39621
diff
changeset
|
29 > #!"$PYTHON" |
12472 | 30 > # |
31 > # An example CGI script to export multiple hgweb repos, edit as necessary | |
32 > | |
33 > import cgitb, sys | |
34 > cgitb.enable() | |
35 > | |
36 > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install | |
37 > from mercurial import hgweb | |
38 > | |
39 > # The config file looks like this. You can have paths to individual | |
40 > # repos, collections of repos in a directory tree, or both. | |
41 > # | |
42 > # [paths] | |
43 > # virtual/path = /real/path | |
44 > # virtual/path = /real/path | |
45 > # | |
46 > # [collections] | |
47 > # /prefix/to/strip/off = /root/of/tree/full/of/repos | |
48 > # | |
49 > # collections example: say directory tree /foo contains repos /foo/bar, | |
50 > # /foo/quux/baz. Give this config section: | |
51 > # [collections] | |
52 > # /foo = /foo | |
53 > # Then repos will list as bar and quux/baz. | |
54 > | |
55 > # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples | |
56 > # or use a dictionary with entries like 'virtual/path': '/real/path' | |
57 > | |
58 > h = hgweb.hgwebdir("hgweb.config") | |
59 > h.run() | |
60 > HGWEBDIR | |
2533
589474a1dc36
Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
61 |
12472 | 62 $ chmod 755 hgwebdir.cgi |
2533
589474a1dc36
Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
63 |
13269
aa3f726a2bdb
tests: remove duplication of the CGI environment variables
StevenGBrown
parents:
12472
diff
changeset
|
64 $ . "$TESTDIR/cgienv" |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39621
diff
changeset
|
65 $ "$PYTHON" hgweb.cgi > page1 |
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39621
diff
changeset
|
66 $ "$PYTHON" hgwebdir.cgi > page2 |
12472 | 67 |
68 $ PATH_INFO="/test/" | |
69 $ PATH_TRANSLATED="/var/something/test.cgi" | |
70 $ REQUEST_URI="/test/test/" | |
71 $ SCRIPT_URI="http://hg.omnifarious.org/test/test/" | |
72 $ SCRIPT_URL="/test/test/" | |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39621
diff
changeset
|
73 $ "$PYTHON" hgwebdir.cgi > page3 |
12472 | 74 |
75 $ grep -i error page1 page2 page3 | |
76 [1] |