annotate tests/test-oldcgi.t @ 51680:e6508d1e0b47 stable

win32mbcs: use str for encoding value This was reported to the TortoiseHg tracker as: https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5980 It doesn't look like we have any tests for this extension, but the explicit type hints are enough to convince pytype that the module level `_encoding` attr is str. The `encode()` and `decode()` methods are too complex to add type hints for them.
author Matt Harbison <matt_harbison@yahoo.com>
date Thu, 11 Jul 2024 11:10:40 -0400
parents d5cd1fd690f3
children
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: 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
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
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
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
5 $ hg init test
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
6 $ cat >hgweb.cgi <<HGWEB
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
7 > #!"$PYTHON"
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
8 > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
9 > # An example CGI script to use hgweb, edit as necessary
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
10 >
50734
d5cd1fd690f3 hgweb: drop references to deprecated cgitb
Mads Kiilerich <mads@kiilerich.com>
parents: 41412
diff changeset
11 > import os, sys
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
12 >
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
13 > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
14 > from mercurial import hgweb
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
15 >
39621
23b749b84b8a py3: call hgweb.hgweb() with bytes values
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 33262
diff changeset
16 > h = hgweb.hgweb(b"test", b"Empty test repository")
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
17 > h.run()
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
18 > HGWEB
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
19
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
20 $ 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
21
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
22 $ cat >hgweb.config <<HGWEBDIRCONF
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
23 > [paths]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
24 > test = test
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
25 > HGWEBDIRCONF
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
26
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
27 $ cat >hgwebdir.cgi <<HGWEBDIR
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
28 > #!"$PYTHON"
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
29 > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
30 > # An example CGI script to export multiple hgweb repos, edit as necessary
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
31 >
50734
d5cd1fd690f3 hgweb: drop references to deprecated cgitb
Mads Kiilerich <mads@kiilerich.com>
parents: 41412
diff changeset
32 > import sys
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
33 >
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
34 > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
35 > from mercurial import hgweb
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
36 >
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
37 > # The config file looks like this. You can have paths to individual
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
38 > # repos, collections of repos in a directory tree, or both.
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
39 > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
40 > # [paths]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
41 > # virtual/path = /real/path
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
42 > # virtual/path = /real/path
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
43 > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
44 > # [collections]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
45 > # /prefix/to/strip/off = /root/of/tree/full/of/repos
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
46 > #
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
47 > # collections example: say directory tree /foo contains repos /foo/bar,
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
48 > # /foo/quux/baz. Give this config section:
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
49 > # [collections]
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
50 > # /foo = /foo
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
51 > # Then repos will list as bar and quux/baz.
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
52 >
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
53 > # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
54 > # or use a dictionary with entries like 'virtual/path': '/real/path'
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
55 >
41412
f5cb822625cc tests: add b'' to config file name
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
56 > h = hgweb.hgwebdir(b"hgweb.config")
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
57 > h.run()
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
58 > HGWEBDIR
2533
589474a1dc36 Create a test to make sure old CGI scripts will still work.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
59
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
60 $ 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
61
13269
aa3f726a2bdb tests: remove duplication of the CGI environment variables
StevenGBrown
parents: 12472
diff changeset
62 $ . "$TESTDIR/cgienv"
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
63 $ "$PYTHON" hgweb.cgi > page1
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
64 $ "$PYTHON" hgwebdir.cgi > page2
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
65
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
66 $ PATH_INFO="/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
67 $ PATH_TRANSLATED="/var/something/test.cgi"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
68 $ REQUEST_URI="/test/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
69 $ SCRIPT_URI="http://hg.omnifarious.org/test/test/"
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
70 $ SCRIPT_URL="/test/test/"
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
71 $ "$PYTHON" hgwebdir.cgi > page3
12472
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
72
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
73 $ grep -i error page1 page2 page3
17c62039cadd tests: unify test-oldcgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
74 [1]