##// END OF EJS Templates
transplant: use peer of source repository as "remote" for "repo.pull()"...
transplant: use peer of source repository as "remote" for "repo.pull()" Before this patch, transplant with "--merge" option fails with traceback unexpectedly, if it causes pull from the source repository on the local host. "discovery.findcommonincoming()" invokes "capable()" method on the object given from "localrepository.pull()", but it is "localrepository" object in this case and doesn't have such method. This patch uses peer object of source repository as "remote" argument for "localrepository.pull()" invocation like other invocations of it in transplant.py.

File last commit:

r18646:c6a81e54 default
r20020:6fb59247 default
Show More
test-hgweb-no-request-uri.t
144 lines | 3.6 KiB | text/troff | Tads3Lexer
/ tests / test-hgweb-no-request-uri.t
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 This tests if hgweb and hgwebdir still work if the REQUEST_URI variable is
no longer passed with the request. Instead, SCRIPT_NAME and PATH_INFO
should be used from d74fc8dec2b4 onward to route the request.
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init repo
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 $ cd repo
$ echo foo > bar
$ hg add bar
$ hg commit -m "test"
$ hg tip
changeset: 0:61c9426e69fe
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: test
$ cat > request.py <<EOF
> from mercurial.hgweb import hgweb, hgwebdir
> from StringIO import StringIO
> import os, sys
>
> errors = StringIO()
> input = StringIO()
>
> def startrsp(status, headers):
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > print '---- STATUS'
> print status
> print '---- HEADERS'
> print [i for i in headers if i[0] != 'ETag']
> print '---- DATA'
> return output.write
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 >
> env = {
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > 'wsgi.version': (1, 0),
> 'wsgi.url_scheme': 'http',
> 'wsgi.errors': errors,
> 'wsgi.input': input,
> 'wsgi.multithread': False,
> 'wsgi.multiprocess': False,
> 'wsgi.run_once': False,
> 'REQUEST_METHOD': 'GET',
> 'SCRIPT_NAME': '',
> 'SERVER_NAME': '127.0.0.1',
> 'SERVER_PORT': os.environ['HGPORT'],
> 'SERVER_PROTOCOL': 'HTTP/1.0'
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 > }
>
> def process(app):
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > content = app(env, startrsp)
> sys.stdout.write(output.getvalue())
> sys.stdout.write(''.join(content))
Mads Kiilerich
hgweb: make the test suite use hgweb in a more WSGI compliant way...
r18646 > getattr(content, 'close', lambda : None)()
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > print '---- ERRORS'
> print errors.getvalue()
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 >
> output = StringIO()
> env['PATH_INFO'] = '/'
> env['QUERY_STRING'] = 'style=atom'
> process(hgweb('.', name = 'repo'))
>
> output = StringIO()
> env['PATH_INFO'] = '/file/tip/'
> env['QUERY_STRING'] = 'style=raw'
> process(hgweb('.', name = 'repo'))
>
> output = StringIO()
> env['PATH_INFO'] = '/'
> env['QUERY_STRING'] = 'style=raw'
> process(hgwebdir({'repo': '.'}))
>
> output = StringIO()
> env['PATH_INFO'] = '/repo/file/tip/'
> env['QUERY_STRING'] = 'style=raw'
> process(hgwebdir({'repo': '.'}))
> EOF
$ python request.py
---- STATUS
200 Script output follows
---- HEADERS
[('Content-Type', 'application/atom+xml; charset=ascii')]
---- DATA
<?xml version="1.0" encoding="ascii"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<!-- Changelog -->
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 <id>http://127.0.0.1:$HGPORT/</id>
<link rel="self" href="http://127.0.0.1:$HGPORT/atom-log"/>
<link rel="alternate" href="http://127.0.0.1:$HGPORT/"/>
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 <title>repo Changelog</title>
<updated>1970-01-01T00:00:00+00:00</updated>
<entry>
<title>test</title>
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 <id>http://127.0.0.1:$HGPORT/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id>
<link href="http://127.0.0.1:$HGPORT/rev/61c9426e69fe"/>
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 <author>
<name>test</name>
<email>&#116;&#101;&#115;&#116;</email>
</author>
<updated>1970-01-01T00:00:00+00:00</updated>
<published>1970-01-01T00:00:00+00:00</published>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre xml:space="preserve">test</pre>
</div>
</content>
</entry>
</feed>
---- ERRORS
---- STATUS
200 Script output follows
---- HEADERS
[('Content-Type', 'text/plain; charset=ascii')]
---- DATA
-rw-r--r-- 4 bar
---- ERRORS
---- STATUS
200 Script output follows
---- HEADERS
[('Content-Type', 'text/plain; charset=ascii')]
---- DATA
/repo/
---- ERRORS
---- STATUS
200 Script output follows
---- HEADERS
[('Content-Type', 'text/plain; charset=ascii')]
---- DATA
-rw-r--r-- 4 bar
---- ERRORS
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..