annotate tests/test-clone-cgi.t @ 36865:3d60a22e27f5

hgweb: perform all parameter lookup via qsparams I think I managed to update all call sites using wsgirequest.form to use parsedrequest.qsparams. Since behavior of qsparams is to retrieve last value, behavior will change if a parameter was specified multiple times. But I think this is acceptable. I'm not a fan of the `req.req.qsparams` pattern. And some of the modified code could be written better. But I was aiming for a straight port with this change. Cleanup can come later. Differential Revision: https://phab.mercurial-scm.org/D2781
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 10 Mar 2018 12:36:36 -0800
parents 8e6f4939a69a
children 2a42ca2679e2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 18552
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
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
3 This is a test of the wire protocol over CGI-based hgweb.
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
4 initialize repository
6922
1ec2d227a521 hgweb: fix WSGI iterators handling in CGI adapter (issue1254)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
5
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
6 $ hg init test
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
7 $ cd test
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
8 $ echo a > a
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
9 $ hg ci -Ama
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
10 adding a
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
11 $ cd ..
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
12 $ cat >hgweb.cgi <<HGWEB
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
13 > #
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
14 > # An example CGI script to use hgweb, edit as necessary
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
15 > import cgitb
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
16 > cgitb.enable()
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
17 > from mercurial import demandimport; demandimport.enable()
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
18 > from mercurial.hgweb import hgweb
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
19 > from mercurial.hgweb import wsgicgi
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
20 > application = hgweb("test", "Empty test repository")
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
21 > wsgicgi.launch(application)
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
22 > HGWEB
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
23 $ chmod 755 hgweb.cgi
6922
1ec2d227a521 hgweb: fix WSGI iterators handling in CGI adapter (issue1254)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
24
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
25 try hgweb request
6922
1ec2d227a521 hgweb: fix WSGI iterators handling in CGI adapter (issue1254)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
26
13269
aa3f726a2bdb tests: remove duplication of the CGI environment variables
StevenGBrown
parents: 12410
diff changeset
27 $ . "$TESTDIR/cgienv"
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
28 $ QUERY_STRING="cmd=changegroup&roots=0000000000000000000000000000000000000000"; export QUERY_STRING
33262
8e6f4939a69a tests: replace yet more calls to `python` with $PYTHON
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
29 $ $PYTHON hgweb.cgi >page1 2>&1
32940
75be14993fda cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents: 22046
diff changeset
30 $ $PYTHON "$TESTDIR/md5sum.py" page1
12410
2bfb335c7594 tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents: 11584
diff changeset
31 1f424bb22ec05c3c6bc866b6e67efe43 page1
18552
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
32
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
33 make sure headers are sent even when there is no body
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
34
33262
8e6f4939a69a tests: replace yet more calls to `python` with $PYTHON
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
35 $ QUERY_STRING="cmd=listkeys&namespace=nosuchnamespace" $PYTHON hgweb.cgi
18552
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
36 Status: 200 Script output follows\r (esc)
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
37 Content-Type: application/mercurial-0.1\r (esc)
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
38 Content-Length: 0\r (esc)
e8efcc8ff5c0 hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents: 15567
diff changeset
39 \r (esc)