Mercurial > hg
annotate tests/test-clone-cgi.t @ 32395:24245b54aa8a
match: replace match class by match function (API)
The matcher class is getting hard to understand. It will be easier to
follow if we can break it up into simpler matchers that we then
compose. I'm hoping to have one matcher that accepts regular
(non-include) patterns, one for exact file matches, one that always
matches (and maybe one that never does) and then compose them by
intersection and difference.
This patch takes a simple but important step towards that goal by
making match.match() a function (and renaming the matcher class itself
from "match" to "matcher"). The new function will eventually be
responsible for creating the simple matchers and composing them.
icasefsmatcher similarly gets a factory function (called
"icasefsmatch"). I also moved the other factory functions nearby.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 12 May 2017 23:11:41 -0700 |
parents | 7a9cbb315d84 |
children | 75be14993fda |
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 |
2bfb335c7594
tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents:
11584
diff
changeset
|
29 $ python hgweb.cgi >page1 2>&1 |
2bfb335c7594
tests: unify test-clone-cgi
Matt Mackall <mpm@selenic.com>
parents:
11584
diff
changeset
|
30 $ python "$TESTDIR/md5sum.py" page1 |
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 |
e8efcc8ff5c0
hgweb.cgi: fix internal WSGI emulation (issue3804)
Mads Kiilerich <madski@unity3d.com>
parents:
15567
diff
changeset
|
35 $ QUERY_STRING="cmd=listkeys&namespace=nosuchnamespace" python hgweb.cgi |
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) |