tests: unify test-hgweb-no-request-uri
authorMatt Mackall <mpm@selenic.com>
Sun, 26 Sep 2010 13:41:32 -0500
changeset 12439 31ea3ce83a92
parent 12438 922d2078017a
child 12440 d9f7753a94d5
tests: unify test-hgweb-no-request-uri
tests/test-hgweb-no-request-uri
tests/test-hgweb-no-request-uri.out
tests/test-hgweb-no-request-uri.t
--- a/tests/test-hgweb-no-request-uri	Sun Sep 26 13:41:32 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-#!/bin/sh
-# 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.
-
-mkdir repo
-cd repo
-hg init
-echo foo > bar
-hg add bar
-hg commit -m "test"
-hg tip
-
-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):
-	print '---- STATUS'
-	print status
-	print '---- HEADERS'
-	print [i for i in headers if i[0] != 'ETag']
-	print '---- DATA'
-	return output.write
-
-env = {
-	'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'
-}
-
-def process(app):
-	content = app(env, startrsp)
-	sys.stdout.write(output.getvalue())
-	sys.stdout.write(''.join(content))
-	print '---- ERRORS'
-	print errors.getvalue()
-	
-
-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 | sed "s/http:\/\/127\.0\.0\.1:[0-9]*\//http:\/\/127.0.0.1\//"
--- a/tests/test-hgweb-no-request-uri.out	Sun Sep 26 13:41:32 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-changeset:   0:61c9426e69fe
-tag:         tip
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     test
-
----- 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 -->
- <id>http://127.0.0.1/</id>
- <link rel="self" href="http://127.0.0.1/atom-log"/>
- <link rel="alternate" href="http://127.0.0.1/"/>
- <title>repo Changelog</title>
- <updated>1970-01-01T00:00:00+00:00</updated>
-
- <entry>
-  <title>test</title>
-  <id>http://127.0.0.1/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id>
-  <link href="http://127.0.0.1/rev/61c9426e69fe"/>
-  <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
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-hgweb-no-request-uri.t	Sun Sep 26 13:41:32 2010 -0500
@@ -0,0 +1,143 @@
+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.
+
+  $ mkdir repo
+  $ cd repo
+  $ hg init
+  $ 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):
+  > 	print '---- STATUS'
+  > 	print status
+  > 	print '---- HEADERS'
+  > 	print [i for i in headers if i[0] != 'ETag']
+  > 	print '---- DATA'
+  > 	return output.write
+  > 
+  > env = {
+  > 	'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'
+  > }
+  > 
+  > def process(app):
+  > 	content = app(env, startrsp)
+  > 	sys.stdout.write(output.getvalue())
+  > 	sys.stdout.write(''.join(content))
+  > 	print '---- ERRORS'
+  > 	print errors.getvalue()
+  > 	
+  > 
+  > 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 -->
+   <id>http://127.0.0.1:*/</id> (glob)
+   <link rel="self" href="http://127.0.0.1:*/atom-log"/> (glob)
+   <link rel="alternate" href="http://127.0.0.1:*/"/> (glob)
+   <title>repo Changelog</title>
+   <updated>1970-01-01T00:00:00+00:00</updated>
+  
+   <entry>
+    <title>test</title>
+    <id>http://127.0.0.1:*/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id> (glob)
+    <link href="http://127.0.0.1:*/rev/61c9426e69fe"/> (glob)
+    <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
+